史上最全的干支纪日播报,超详细!
史上最全的干支纪日播报,超详细!
干支纪日播报
编辑
干支纪日,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年日和一甲子的60日,最小公倍数是日,合8000年。这就是说,每80年,干支纪日对应的公历月日日期若没有遇到能被100但非400整除的公元年,会反复一次循环,但整体而言,假设未来从不改公历,每8000年,干支纪日对应的公历月日日期才会反复一次完整的循环。1912年(中华民国元年)2月18日,合农历壬子年正月初一,以及1992年2月18日,都是是“甲子日”。 [1]
换算口诀播报
编辑
口诀
乘五除四九加日,
双月间隔三十天。
一二自加整少一,
三五七八十尾前。 [1]
注释
第三句中的“整少一”,为能被4整除之年一二月份比其他三年都要少加一;
第四句反映的是大月规律,即8月加3、11月加5,依此类推。 [1]
换算方法播报
编辑
干支是天干和地支的组合。天干有十个,即甲、乙、丙、丁、戊、己、庚、辛、壬、癸;地支有十二个,即子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥。天干和地支从“甲子”开始,按顺序逐一相配,各用到最后一个时,再从第一个开始继续相配,就形成了六十个干支,也称“六十花甲子”。 [1]
干支序号互推
根据干支的构成条件,其循环周期必然是天干数和地干数的最小公倍数。而60正是10和12的最小公倍数。
如果我们把“甲子”编为1号,“乙丑”编为2号,这样编下去,就可以得到一个干支和序号的对照表,如下:
六十甲子
天干
地支
10
11
12
甲子
乙丑
丙寅
丁卯
戊辰
己巳
庚午
辛未
壬申
癸酉
甲戌
乙亥
丙子
丁丑
戊寅
己卯
庚辰
辛巳
壬午
癸未
甲申
乙酉
丙戌
丁亥
戊子
己丑
庚寅
辛卯
壬辰
癸巳
甲午
乙未
丙申
丁酉
戊戌
己亥
庚子
辛丑
壬寅
癸卯
甲辰
乙巳
丙午
丁未
戊申
己酉
庚戌
辛亥
壬子
癸丑
甲寅
乙卯
丙辰
丁巳
戊午
己未
庚申
辛酉
壬戌
癸亥
由序号得到对应干支是很容易的,序号除以10的余数就是天干的序数(如果余数是0,则为最后一个天干癸),序号除以12的余数就是地支的序数(如果余数是0,则为最后一个地支亥)。比如37号干支,因为37 mod 10=7(mod表示取余数),对应的天干是庚,37 mod 12=1,对应的地支是子,所以37号干支就是庚子。
显然,一个整数除以10的余数就是它的个位数,这就使求天干更方便了。
而由干支推它的序号,也不困难。这其实就是一个同余方程组的求解问题,用初等数论中的中国剩余定理就可以解决。比如要算戊午的序号是多少,根据上面由序号得到对应干支的原理,易得如下方程组:
x mod 10 = 5
x mod 12 = 7.
其中x是待求的干支序号。根据中国剩余定理,有:
x ≡ 6 * 5 - 5 * 7 (mod 60) = 55,
即戊午的序号是55.这和上面的对照表的是一致的。一般地,若天干的序号为m,地支的序号为n,则干支的序号为:
x ≡ 6m - 5n (mod 60) (1)
如果6m-5n的结果是正数,这个数就是干支的序号;如果是负数,把它加上60就是干支的序号。 [1]
年干支的求算
需要说明的是,干支纪年纪的是农历年,而不是公历年。但因为农历年的岁首和公历年的岁首相隔较近,使农历年总是和某一公历年的大部分重合,因此,通常也用公历年的年份表示和它大部分重合的农历年。这样就很容易给出农历年的干支序号为:
x = (Y-3) mod 60, (2)
其中Y是年份。得到了干支序号x,就可以求出相应的干支来。比如2004年的干支序号:
x = (2004-3) mod 60 = 2001 mod 60 = 21,
21 mod 10=1,天干为甲,21 mod 12=9,地支为申,因此,2004年是甲申年。
用Y-3直接除以10,就可以得到天干,用Y-3直接除以12,就可以得到地支。这是因为
x = (Y-3) mod 60等价于Y-3 = 60 * n + x,
其中n是Y-3除以60的商数。等式两边同时除以10,余数也必然相等。而右边第一项是60的倍数,自然也是10的倍数,能够被10整数,于是Y-3除以10的余数就必然等于x除以10的余数。因此,其实我们完全用不着先求干支的序号,而可以分别求天干和地支,合起来就是干支,这样就减少了一步运算。而对于年份的天干,同样只须看末尾一位。末尾为4的年份的天干总是甲,末尾为5的年份的天干总是乙……依次类推。 [1]
月干支的求算
月干序=(所求年尾数+2)*2+月份(取尾数)
月支序=月份+2(大于12的时候减去12)
例:2015年5月份的干支是多少?
月干序=(5+2)*2+5=19取尾数9,则干序是壬;
月支序=5+2=7,则支序是午。则2015年5月份的干支是壬午。 [1]
日干支的求算
仿照星期的求算,得到一个比较直观的计算日干支的公式如下:
G = (Y-1)*5 + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] + D + 15, (3)
其中Y是年份,D是累积天数,[...]表示取商数,也就是只取计算结果的整数部分。把G除以60,余数就是干支的序号。或者把G除以10或12,可以直接得到日天干和日地支。不过,和形式相似的求星期的公式一样,这个公式还不够简炼,特别是第一项(Y-1)*5,在Y为四位数年份时,计算出来的结果是一个较大的四位数或五位数,口算很不方便。用推导蔡勒公式的办法,可以改进这个公式。先来看和年份有关的部分的改进。
按公历的置闰规则,一个世纪的总天数可能是36524天,或36525天。如果这个世纪中末尾为00的年份是闰年,这个世纪就只有36525天;否则就只有36524天。不妨称有36524天的世纪为“平世纪”,有36525天的世纪为“闰世纪”。对于平世纪,因为36524 mod 60 = 44,所以,每过一个平世纪,同一天的干支就向后推进44个序号。同样,每过一个闰世纪,同一天的干支就向后推进45个序号。这就得到一个计算每个世纪第一年(年份末尾为01)3月1日的公式:
G = 44C + [C/4] + 15, (4)
其中C是世纪数减一。
而计算任一年3月1日的干支的公式也可以很快得到:
G = 44C + [C/4] + 5(y-1) + [y/4] + 15,即
G = 44C + [C/4] + 5y + [y/4] + 10, (5)
其中y是年份后两位数字。
下面再列出每月天数:
月份
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月
天数
31
28(29)
31
30
31
30
31
31
30
31
30
31
减30后的剩余天数 1 -2(-1) 1 0 1 0 1 1 0 1 0 1
如果把1月和2月看成是上一年的13月和14月,同样可以得到下面的式子:
D’ ≡ [3*(M+1) / 5] + d - 2 (mod 10) (6)及
D’ ≡ [3*(M+1) / 5] + d - 2 + i (mod 12) (奇数月i=0,偶数月i=6), (7)
其中,D’是从3月1日开始算起的累积天数,M是月份,d是日数。把(6)(7)两式和(5)式合起来中国干支历法的第二十天,再进行适当的化简,就得到了计算公历任意一天的天干和地支的公式:
g = 4C + [C/4] + 5y + [y/4] + [3*(M+1) / 5] + d - 3; (8)
z = 8C + [C/4] + 5y + [y/4] + [3*(M+1) / 5] + d + 7 + i (奇数月i=0,偶数月i=6),(9)
如果先求得了g,那么
z = g + 4C + 10 + i (奇数月i=0,偶数月i=6). (10)
g的个位数就是天干序号,z除以12的余数就是地支序号。这里需要再次强调:1月和2月是当做上一年的13月和14月来算的,因此C和y也要按上一年的年份来取值。
把(8)(9)两式和蔡勒公式对比一下:
W = -2C + [C/4] + y + [y/4] + [13*(M+1) / 5] + d - 1,
可以看出它们的形式非常相似史上最全的干支纪日播报,超详细!,区别仅仅是几个常数的不同。
尽管中国已经不用干支纪日了,但有时还是需要计算日干支的。比如,历法有所谓“三伏”和“入梅”“出梅”,都和日干支有关。三伏包括初伏、中伏和末伏,是指夏天最热的一段时间,入梅和出梅是指江南一带梅雨季节的开始和结束,本来是和气候有关的用语。但因为古代没有准确的天气预报,无法准确预测三伏和入出梅的时间,所以就在历书上硬性规定几个日子作为三伏开始和入出梅的日子,这样确定一个大致的日期以备参考。虽然有了比较准确的天气预报,但三伏和入出梅作为一种传统历法,仍然流传下来。
历法规定夏至之后的第三个庚日为初伏开始,共十天;第四个庚日为中伏开始,十天或二十天;立秋之后的第一个庚日为末伏开始,共十天。中伏的长度之所以不固定,是因为夏至、立秋的日期和庚日的日期是逐年浮动的,立秋之后的第一个庚日可能是夏至之后的第五个庚日,也可能是第六个庚日。如果是前者,中伏就只有十天;如果是后者,中伏就长达二十天。注意如果夏至当天是庚日,夏至之后第一个庚日是指夏至之后第十天,而不是夏至当天,这时初伏第一天就是夏至之后第三十天。同样,如果立秋当天是庚日,末伏第一天就是立秋之后第十天,而不是立秋当天。入梅则是指芒种之后的第一个丙日,出梅是指小暑之后的第一个未日,也有同样的规定。
知道了这些,我们可以算一下2004年的初伏、中伏和末伏都是什么日子。这需要先知道夏至和立秋的日子。如果知道夏至是6月21日,立秋是8月7日,那么运用公式(8),夏至这天的g为:
g = 4 * 20 + [20/4] + 5*4 + [4/4] + [3*(6+1) / 5] + 21 - 3
= 80 + 5 + 20 + 1 + 4 + 21 - 3
= 128,
个位数是8,天干是辛。夏至之后第三个庚日就是夏至之后第29天,也就是7月20日,这天也就是初伏第一天。中伏第一天则是7月30日。同样可算出立秋这天的g为:
g = 4 * 20 + [20/4] + 5*4 + [4/4] + [3*(8+1) / 5] + 7 - 3
= 80 + 5 + 20 + 1 + 5 + 7 - 3
= 115,
是个戊日。立秋之后第一个庚日就是立秋之后第2天,也即8月9日,这天就是末伏第一天。由此也可知,2004年的中伏只有十天。同样可以由芒种和小暑两节气的日期,算出2004年的入梅日和出梅日分别是6月6日和7月15日。 [1]
年份日期求算
反过来,知道了年干支和日干支,求相应的年份和日期就相对麻烦一点了。因为干支是循环使用的,所以必须先知道欲求对应年份和日期的干支是属于哪一次循环。比如我们预先用公式(2)算出来1864、1924、1984年都是甲子年,如果要知道戊戌变法是哪一年,首先要确定它是十九世纪末的事情,也即是属于1864年开始的这一个循环里。那么,我们用公式(1)可以算出来戊戌的序号是35,于是戊戌年就是(1864-1)+35=1898年。之所以要先减一,是因为甲子的序号为1,需要把这个序号先减去。
至于日干支,因为古书里的日干支总是和年、月配合使用的,所以不难确定它属于哪个循环。比如《明史·庄烈帝本纪》记载明崇祯皇帝朱由检在煤山自缢的日子是崇祯十六年三月丁未。崇祯十六年就是公元1644年。三月虽然是农历的三月,但我们知道农历的日期在公历里虽然是浮动的,但也不出一定的范围,比如农历三月初一,总是在公历3月22日到4月19日之间浮动。因此,先来算1644年3月22日的干支。有:
g = 4 * 16 + [16/4] + 5 * 44 + [44/4] + [3*(3+1) / 5] + 22 - 3
= 64 + 4 + 220 + 11 + 2 + 22 - 3
= 320,
个位数是0,
z = g + 4C + 10
= 320 + 64 + 10
= 394,
除以12余10,所以这一天的干支是癸酉,其序号为6*0-5*10+60=10。而丁未的序号是6*4-5*8+60=44,在癸未之后34天,因此三月丁未肯定是3月22日之后34天,即4月25日。这就是说,崇祯自缢的日子是1644年4月25日,这和查万年历的结果是一致的。 [1]
干支与公历换算
从已知的公历年份计算干支纪年:年份数减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的余数是地支。 [1]
换算实例播报
编辑
例一:1996年1月16日
(96×5+96÷4+9+16)÷60=8余49,49即为六十甲子序数。9对应天干壬,49除12余1对应地支子,对应干支为“壬子”。
例二:1997年2月16日
(97×5+97÷4+9+16+30+2)÷60=9余26,26即为六十甲子序数。6对应天干己,26除12余2对应地支丑,对应干支为“己丑”。
例三:1998年3月16日
(98×5+98÷4+9+16)÷60=8余59,对应干支为“壬戌”。
例四:1999年4月16日
(99×5+99÷4+9+16+30+1)÷60=9余35,对应干支为“戊戌”。
例五:2000年7月16日
(100×5+100÷4+9+16+2)÷60=9余12,对应干支为“乙亥”。
例六:20001年10月16日
(101×5+101÷4+9+16+4+30)÷60=9余49中国干支历法的第二十天,对应干支为“壬子”。 [1]
- 相关文章