干支纪年表
代码实现:
package com.xieh;
public class Demo {
public static void main(String[] args) {
// System.out.println(gzYear(1911));
for (int i = 1800; i < 2035; i++) {
System.out.println("年份:" + i);
System.out.println(gzYear(i));
System.out.println();
}
}
public static String gzYear(Integer year) {
// 十天干
String[] stg = { "甲", "乙", "丙", "丁", "戊", "已", "庚", "辛", "壬", "癸" };
// 十二地支
String[] dz = { "子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥" };
// 公元年数先减三
// 除十余数是天干
// 基数改用十二除,这里的基数指的是公元年数先减三的结果
// 余数便是地支年
int tgn = (year - 3) % 10;
int dzn = (year - 3) % 12;
// System.out.println("天干年:" + tgn);
// System.out.println("地支年:" + dzn);
if (tgn == 0) {
tgn = stg.length;
}
if (dzn == 0) {
dzn = dz.length;
}
return stg[tgn - 1] + dz[dzn - 1] + "年";
}
}