用公历年份计算干支纪年很简单:年份数减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的余数是地支。 巧妙运用和干支有关的几个计算公式,还可以在没有万年历的情况下推算出古书里的干 支纪日对应的公历日期。
干支纪日,从夏朝就开始使用了。根据对中国古代历史典籍《春秋》中记载的日食的研究,我国的干支纪日,从鲁隐公三年二月己巳日(公元前720年2月10日)开始,一直到 今天,都未曾间断。干支纪年的出现则略晚一些,直到东汉元和二年(公元85年)政府才下令在全国实行,至今也未曾间断。因此,凡是需要接触中国历史的人,总不免要遇到查某一年的干支或某一日的干支,以及由年干支和日干支推算是哪一年或哪一日的问题。通常,这类转换靠查历书都可以解决。但既然干支也是一个循环系统,自然也就有从年份和日期求干支的公式。干支是天干和地支的组合:
序号 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
十天干 |
甲 |
乙 |
丙 |
丁 |
戊 |
已 |
庚 |
辛 |
壬 |
癸 |
序号 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
十二地支 |
子 |
丑 |
寅 |
卯 |
辰 |
巳 |
午 |
未 |
申 |
酉 |
戌 |
亥 |
天干地支相配生成六十甲子
用十干的“甲、丙、戊、庚、壬”和十二支的“子、寅、辰、午、申、戌”相配,十干的“乙、丁、已、辛、癸”和十二支的“丑、卯、巳、未、酉、亥”相配,天干和地支从“甲子”开始,按顺序逐一相配,各用到最后一个时,再从第一个开始继续相配,就形成了六十个干支共配成六十组,称为《六十甲子》。
为什么是六十个干支呢?这个从数学上很容易回答。根据干支的构成条件,其循环周期必然是天干数和地干数的最小公倍数。而60正是10和12的最小公倍数。
|
如果我们把“甲子”编为1号,“乙丑”编为2号,这样编下去,就可以得到一个干支和序号的对照表,
序 |
干支 |
序 |
干支 |
序 |
干支 |
序 |
干支 |
序 |
干支 |
1 |
甲子 |
13 |
丙子 |
25 |
戊子 |
37 |
庚子 |
49 |
壬子 |
2 |
乙丑 |
14 |
丁丑 |
26 |
己丑 |
38 |
辛丑 |
50 |
癸丑 |
3 |
丙寅 |
15 |
戊寅 |
27 |
庚寅 |
39 |
壬寅 |
51 |
甲寅 |
4 |
丁卯 |
16 |
已卯 |
28 |
辛卯 |
40 |
癸卯 |
52 |
乙卯 |
5 |
戊辰 |
17 |
庚辰 |
29 |
壬辰 |
41 |
甲辰 |
53 |
丙辰 |
6 |
已巳 |
18 |
辛巳 |
30 |
癸巳 |
42 |
乙巳 |
54 |
丁巳 |
7 |
庚午 |
19 |
壬午 |
31 |
甲午 |
43 |
丙午 |
55 |
戊午 |
8 |
辛未 |
20 |
癸未 |
32 |
乙未 |
44 |
丁未 |
56 |
已未 |
9 |
壬申 |
21 |
甲申 |
33 |
丙申 |
45 |
戊申 |
57 |
庚申 |
10 |
癸酉 |
22 |
乙酉 |
34 |
丁酉 |
46 |
已酉 |
58 |
辛酉 |
11 |
甲戌 |
23 |
丙戌 |
35 |
戊戌 |
47 |
庚戌 |
59 |
壬戌 |
12 |
乙亥 |
24 |
丁亥 |
36 |
已亥 |
48 |
辛亥 |
60 |
癸亥 |
细心观察这张表,不难发现,由序号得到对应干支是很容易的,序号除以10的余数就是天干的序数(如果余数是0,则为最后一个天干癸),序号除以12的余数就是地支的序数(如果余数是0,则为最后一个地支亥)。
本人使用的公元年份干支计算方法:
公元年-3÷60的余数即为干支序号数
公元前年-2÷60的余数即为干支序号数
现在有了计算机,可以用程序实现任何复杂的计算。下面是本人用程序实现的已知公元年份查询干支年和已知干支年查询公元年的小软件:
|