干支纪日与公历换算
干支纪日
干支纪日,60日大致合2个月一个周期;一个周期完了重复使用,周而复始,循环下去。确定的文献指出干支纪日始于鲁隐公三年夏历二月己巳日(公元前720年2月10日)。
因为儒略历的平年有365日,而每4年一次,公元年能被4整除,闰年有366日,平均一年365.25日,所以4年1461日和一甲子的60日,最小公倍数是29220日,合80年。这就是说,每80年,干支纪日对应的儒略历月日日期会反复一次循环。(公元4年本来应为闰年,但因为公元前45年开始实施儒略历后,“每隔3年”加一次闰日被误为“每3年”加一次闰日,所以罗马皇帝屋大维下令前5年、前1年、4年停闰以修正错误置闰。)
因为公历的平年有365日,而每4年一次,公元年能被100但非400整除,闰年有366日,平均一年365.2425日,所以400年146097日和一甲子的60日,最小公倍数是2921940日,合8000年。这就是说,每80年,干支纪日对应的公历月日日期若没有遇到能被100但非400整除的公元年,会反复一次循环,但整体而言,假设未来从不改公历,每8000年,干支纪日对应的公历月日日期才会反复一次完整的循环。1912年(中华民国元年)2月18日,合农历壬子年正月初一,以及1992年2月18日,都是是“甲子日”。
干支纪日与公历的换算
从已知的公历年份计算干支纪年:年份数减3,除以10的余数是天干,除以12的余数是地支。
从已知日期计算干支纪日的公式为:
g = 4C + [C / 4] + 5y + [y / 4] + [3 * (M + 1) / 5] + d - 3
z = 8C + [C / 4] + 5y + [y / 4] + [3 * (M + 1) / 5] + d + 7 + i
其中奇数月i=0,偶数月i=6,C是世纪数减一,y是年份后两位,M是月份,d是日数。1月和2月按上一年的13月和14月来算。[ ]表示取整。g除以10的余数是天干,z除以10的余数是地支。