干支计算方法:
(1)将十大天干、十二地支编号.如下:甲 乙 丙 丁 戊 己 庚 辛 壬 癸
4 5 6 7 8 9 0 1 2 3
子 丑 寅 卯 辰 巳 午 未 申 酉 戌 亥
4 5 6 7 8 9 10 11 0 1 2 3
(2)计算时,年最后一位的数对应天干的编号、用年数除以12,得到的余数对应地支的编号,合起来就是该年的干支纪年法.
如2011年:最后一位是1,对应的天干的编号就是“辛”,再用2011除以12得到167余7,对应地支编号为“卯”合起来即2011年为“辛卯”年.Java代码:import java.util.Scanner;
public class Test {
/**
* 计算对应年份的生肖
* @param year 给定年份
* @return 返回生肖的字符串
*/
private static String getZodica(int year) {
final String[] Animals = new String[] { "鼠", "牛", "虎", "兔", "龙", "蛇",
"马", "羊", "猴", "鸡", "狗", "猪" };
return Animals[(year - 4) % 12];
}
/**
* 计算对应年份的干支
* @param year 给定年份
* @return 返回干支字符串
*/
private static String Gan_Zhi(int year) {
final String[] Gan = new String[] { "甲", "乙", "丙", "丁", "戊", "己", "庚",
"辛", "壬", "癸" };
final String[] Zhi = new String[] { "子", "丑", "寅", "卯", "辰", "巳", "午",
"未", "申", "酉", "戌", "亥" };
return (Gan[(year-4) % 10] + Zhi[(year-4) % 12]);
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("输入年份:");
int year = sc.nextInt();
System.out.println("生肖:"+getZodica(year)+"\n干支:"+Gan_Zhi(year));
}
}测试结果:
如果满足要求,望采纳!