公元元年是 辛酉年,以此为基准可以推算各个年份对应的干支纪年
private static String [] DCA_SECS = new String [] {"庚","辛","壬","癸","甲","乙","丙","丁","戊","己"};
private static String [] DCB_SECS = new String [] {"辛","庚","己","戊","丁","丙","乙","甲","癸","壬"};
private static String [] DCA_ZODIACS = new String [] {"申","酉","戌","亥","子","丑","寅","卯","辰","巳","午","未"};
private static String [] DCB_ZODIACS = new String [] {"酉","申","未","午","巳","辰","卯","寅","丑","子","亥","戌"};
/**
* @Title: getYearTips
* @Description: 公元元年year=1,公元前year为负数
* @param year
*/
private static void getYearTips(int year) {
if(year > 0) {
System.out.println("公元"+ (year==1?"元":year) + "年是 " + DCA_SECS[year%10] + DCA_ZODIACS[year%12] + "年");
}else {
int _year = Math.abs(year);
System.out.println("公元前" + Math.abs(_year) + "年是 " + DCB_SECS[_year%10] + DCB_ZODIACS[_year%12] + "年");
}
}
public static void main(String[] args) throws Exception {
getYearTips(1987); //公元1987年是 丁卯年
}