用java写一个输入一个不超过公元9999年份,输出相应的天干地支年份
时间: 2023-05-20 16:02:37 浏览: 225
以下是Java代码:
import java.util.Scanner;
public class TianGanDiZhi {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入一个不超过公元9999年份:");
int year = input.nextInt();
String[] tianGan = {"甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"};
String[] diZhi = {"子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"};
int tianGanIndex = (year - 4) % 10;
int diZhiIndex = (year - 4) % 12;
System.out.println(tianGan[tianGanIndex] + diZhi[diZhiIndex] + "年");
}
}
输入一个年份,程序会输出相应的天干地支年份。
相关问题
c语言,输入一个代表年份的整数,输出相应的天干的地支
在C语言中,根据中国传统农历中用于纪年的天干地支系统(也称干支纪年法),需要编写一段程序来计算给定年份对应的天干和地支。这里我们假设输入的是公历年份,并依据中国古代干支算法。天干有十个字符(甲、乙、丙、丁、戊、己、庚、辛、壬、癸),地支有十二个字符(子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥)。以下是简单的计算步骤:
```c
#include <stdio.h>
#include <stdlib.h>
char get_gan(int year);
char get_zhi(int year);
int main() {
int year;
printf("请输入一个年份:");
scanf("%d", &year);
char gan = get_gan(year);
char zhi = get_zhi(year);
printf("该年份的天干为:%c\n", gan);
printf("该年份的地支为:%c\n", zhi);
return 0;
}
char get_gan(int year) {
if (year % 10 == 0)
return '甲';
else if (year % 10 == 1)
return '乙';
// ... 依次计算其他天干
}
char get_zhi(int year) {
int month = (year - 4) % 60; // 公元纪年转换为农历纪年
switch (month % 12) {
case 0:
return '子';
case 1:
return '丑';
// ... 依次计算其他地支
}
}
```
上述代码简化了算法,仅作示例。实际应用中需要更复杂的逻辑处理闰月和特殊规则。记住,这个方法只适用于从公元1901年开始的年份。
用python编写程序,输入一个公元纪年的年份,输出这一年对应的天干地支年份,写出实现的代码
在Python中,我们可以利用字典来存储公元纪年转换为天干地支的对应关系。天干有十个字符(甲、乙、丙、丁、戊、己、庚、辛、壬、癸),地支有十二个字符(子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥)。这里是一个简单的实现代码:
```python
def solar_term_to_gan_zhi(year):
# 定义天干和地支的周期数组
ganyu = ['甲', '乙', '丙', '丁', '戊', '己', '庚', '辛', '壬', '癸']
dizhi = ['子', '丑', '寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌', '亥']
# 转换规则:公元纪年除以10余数为天干,除以12余数为地支
gan = ganyu[year % 10]
zhi = dizhi[year % 12]
return f"{gan}{'甲子'[(year - 1) // 60] + dizhi[(year - 1) // 12]}"
# 输入测试
year = int(input("请输入一个公元纪年:"))
gan_zhi_year = solar_term_to_gan_zhi(year)
print(f"公元{year}年对应的天干地支为:{gan_zhi_year}")
阅读全文