天干地支和算法詳解

天干地支簡稱干支,是夏歷中用來編排年號和日期用的 。
天干是:甲、乙、丙、丁、戊、己、庚、辛、壬、癸,也叫天干;
地支是:子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥,也稱十二地支 。


讀音依次讀作
十天干:甲(jiǎ)、乙(yǐ)、丙(bǐng)、?。╠īng)、戊(wù)、己(jǐ)、庚(gēng)、辛(xīn)、壬(rén)、癸(guǐ);
十二地支:子(zǐ)、丑(chǒu)、寅(yín)、卯(mǎo)、辰(chén)、巳(sì)、午(wǔ)、未(wèi)、申(shēn)、酉(yǒu)、戌(xū)、亥(hài)


干支還是陰陽之分:
甲、丙、戊、庚、壬為陽干,乙、丁、己、辛、癸為陰干;
子、寅、辰、午、申、戌為陽支,丑、卯、巳、未、酉、亥為陰支 。
以一個天干和一個地支相配,排列起來,天干在前,地支在后,天干由甲起,地支由子起,陽干配陽支,陰干配陰支(陽干不配陰支,陰干不配陽支),共有六十個組合,稱為“六十甲子” 。

我國人民過去就是以六十甲子循環起來紀年、紀月、紀日、紀時的 。
1.甲子 2.乙丑 3.丙寅 4.丁卯 5.戊辰 6.己巳 7.庚午 8.辛未
9.壬申 10.癸酉 11.甲戌 12.乙亥 13.丙子 14.丁丑 15.戊寅 16.己卯
17.庚辰 18.辛巳 19.壬午 20.癸未 21.甲申 22.乙酉 23.丙戌 24.丁亥
25.戊子 26.己丑 27.庚寅 28.辛卯 29.壬辰 30.癸巳 31.甲午 32.乙未
33.丙申 34.丁酉 35.戊戌 36.己亥 37.庚子 38.辛丑 39.任寅 40.癸卯
41.甲辰 42.乙巳 43.丙午 44.丁未 45.戊申 46.己酉 47.庚戌 48.辛亥
49.壬子 50.癸丑 51.甲寅 52.乙卯 53.丙辰 54.丁己 55.戊午 56.己未
57.庚申 58.辛酉 59.壬戌 60.癸亥


干支紀年法
陽歷年份除以60的余數減3便得該年農歷干支序號數,再查上面的干支便是干支年紀 。

為什么陽歷年份除以60的余數還要減去3?
答:公元元年不是甲子年 差3


如甲子為第一年,乙丑為第二年,丙寅為第三年……六十年為一周 。一周完了,再由甲子年起,周而始,循環下去 。例如1929年是農歷己巳年,1930年是農歷庚午年……到1989年又是農歷己巳年 。我們在日歷上看到的己巳年、庚午年,就是按干支紀年這種方法排列下來的 。陽歷年份除以60的余數減3便得該年農歷干支序號數,再查上面的干支便是干支年紀 。如果序號數小于、等于零則于支序號數加60 。例如,求1991年干支;1991÷60=33余11,年干支序號數=11-3=8 。查干支表知該年為辛未年 。又如求1983年干支:1983÷60=33余3,干支序號=3-3=0,加上60,查干支表知該年為癸亥 。


干支紀月法


干支紀月法未普遍實行,主要為星相家推算八字用 。其方法為:若遇甲或己的年份,正月是丙寅;遇上乙或庚之年,正月為戊寅;丙或辛之年正月為庚寅,丁或壬之年正為為壬寅,戊或癸之年正月為甲寅 。正月之干支知道了,其余月可按六十甲子的序推知 。


干支紀日法


甲炎了第一日,乙丑為第二日,丙寅為第三日……60日為一周 。一周完了再由甲子日起,周而復始,循環下去 。例如農歷己巳年(1989年)正月初一是丁酉日,初二是戊戌日……到三月初七正好是60天,因此三月初二又是丁酉日 。


干支紀時法
一天中時辰的地支也是確定的,所以二十四小時配十二地支,由夜間十一點至一點為子時,一點至三點為丑時,其余照推 。時的天由該日所對天干推求,其歌訣如下:
甲己還生甲,乙庚丙作初,
丙辛從戊起,丁壬庚子居,
戊癸何方發,壬子是真途 。

即若該日是甲或己的,在子時上配上甲為甲子;日是乙或庚的,在子時上配上丙為丙子;丙辛日子時配上戊為戊子;丁任日為庚子;戊癸日為壬子 。知道了子時的干支,便可推知其余 。


干 支 紀 年 法


一.十支紀年是我國傳統的紀年方法 。
1.干和支的含義:干支是天干,地支的合稱 。
干指天干,共有10個符號:
12345678910
甲 乙丙 丁 戊己 庚 辛 壬癸
支指地支,共有12個符號:
123456 7891011 12
子 丑寅卯 辰 巳 午 未申 酉戌 亥


2.干和支組合后用于紀年 。即:將十天干和十二地支按順序搭配組合成干支,用于紀年 。按此排法,當天干10個符號排了六輪與地支12個符號排了五輪以后,可構成60干支 。續排下去又將恢復原狀,周而復始,即如民間所說“六十年轉甲子” 。


二.查看不同時間段的萬年歷 。如:1516—2060年的萬年歷,記著五百年的干支,一查便知 。
六十年甲子(干支表)
12345678910
甲子 乙丑 丙寅 丁卯 戊辰 己巳 庚午 辛未 壬申 癸酉
1112 1314151617181920
甲戌 乙亥 丙子 丁丑 戊寅 己卯 庚辰 辛己 壬午 癸未
21222324252627282930
甲申 乙酉 丙戌 丁亥 戊子 己丑 庚寅 辛卯 壬辰 癸巳
31323334353637383940
甲午 乙未 丙申 丁酉 戊戌 己亥 庚子 辛丑 壬寅 癸卯
41424344454647484950
甲辰 乙巳 丙午 丁未 戊申 己酉 庚戌 辛亥 壬子 癸丑
51525354555657585960
甲寅 乙卯 丙辰 丁巳 戊午 己未 庚申 辛酉 壬戌 癸亥
根據“六十年甲子(干支表)”的公元年對應進行向上或朝下地反推 。如:《辛亥革命》的辛亥年是1911年(48號干支),《戊戌變法》的戊戌年為35號干支,比辛亥年早13年,則“1911-13=1898”故《戊戌變法》是1898年 。

應用公元年進行計算 。應用公元年的某一年,聊以60(指六十年甲子),余數小于60,再用余數減去3(干支紀年是從公元4年開始使用的),便知 。

如2002年:2002÷60,余數為22,再22-3,得數是19,查六十年甲子(干支表)19號干支,得知是壬午年 。


三.結合實際了解“十二地支”
1.用十二種動物分別與十二地支相配成為“十二生肖年” 。(見下圖)如凡是含有“子”的干支年,就是“鼠年”,這一年里出生的人都是屬“鼠”;凡是含有“丑”的干支年就是“牛年”,這一年進而出生的人都是屬“牛” 。以此類推 。(如下表)
十二生肖年
123456789101112
子鼠 丑牛 寅虎 卯兔 辰龍 巳蛇 午馬 未羊 申猴 酉雞 戌狗 亥豬


2. 以十二地支來表示十二時辰 。
一日有二十四小時,而我國傳統則以十二個時辰來表示,即一時辰是二小時 。(如下表)
二十四小時和十二時辰對照表
子丑寅卯辰己
23-01:01-03:03-05 :05-07:07-09:09-11
午未申酉戊亥
11-13:13-15:15-17:17-19:19-21:21-23


四、由公元推干支記年
為了便于運算和使檢索更加直觀,借用六十干支表并按順序加以編號成表一如下:
六十干支表甲子0乙丑1 丙寅2 丁卯3 戊辰4 己巳5 庚午6 辛未7 壬申8 癸酉9
甲戌10 乙亥11 丙子12 丁丑13 戊寅14 己卯15 庚辰16 辛巳17 壬午18 癸未19
甲申20 乙酉21 丙戌22 丁亥23 戊子24 己丑25 庚寅26 辛卯27 壬辰28 癸巳29
甲午30 乙未31 丙申32 丁酉33 戊戌34 己亥35 庚子36 辛丑37 壬寅38 癸卯39
甲辰40 乙巳41 丙午42 丁未43 戊申44 己酉45 庚戌46 辛亥47 壬子48 癸丑49
甲寅50 乙卯51 丙辰52 丁巳53 戊午54 己未55 庚申56 辛酉57 壬戌58 癸亥59
該表于公元前后的推算均適用,具體的方法如下:


1,求公元后某年(設為Y)的干支 。方法是:先以Y除以60得出余數,然后再減去4,最后根據所得結果查表一中相應序數所對應的干支即為該年的干支 。
例如求公元1911年的干支:1911÷60余數為51,減4后得47,查表一47對應的干支是辛亥,即1911年為辛亥年 。由于干支紀年60 年一循環,當Y÷60的余數小于4時,需借干支紀年的一個周期60之數,例如1981年除以60余數為1,直接減4不夠減,加上60之后再減4等于57,查表一便知1981年為辛酉年 。余可類推 。


2,求公元前某年(設為X)的干支 。方法是:先以X除以60求其余數,再用57減去所得余數,根據所得結果再查表一中對應的干支,即為該年的干支 。
例如求公元前221年的干支:221÷60,余數是41,以57-41=16,查表一16對應的是庚辰,即公元前221年對應的干支應為庚辰 。同樣由于干支紀年的循環周期為60年,當余數大于57時,也需再借60 。例如求公元前479年(孔子卒年)的干支:479除以60余59,用57減59不 夠減,加上60之后再減59等于58,查表一知該年對應的干支為壬戌 。其余可以類推 。


上述方法簡便易行,只要記住表一,就完全可以不用紙筆,直接由心算推出結果 。


五、速查干支農歷紀月法
其方法為:若遇甲或己的年份,正月是丙寅;遇上乙或庚之年,正月為戊寅;遇上丙或辛之年,正月為庚寅;遇上丁或壬之年,正月為壬寅;遇上戊或癸之年,正月為甲寅 。依照正月之干支,其余月份按干支推算即可 。詳見下表:
年 份
一月
二月
三月
四月
五月
六月
七月
八月
九月
十月
十一月
十二月
甲、己
丙寅
丁卯
戊辰
己巳
庚午
辛未
壬申
癸酉
甲戌
乙亥
丙子
丁丑
乙、庚
戊寅
己卯
庚辰
辛巳
壬午
癸未
甲申
乙酉
丙戌
丁亥
戊子
己丑
丙、辛
庚寅
辛卯
壬辰
癸巳
甲午
乙未
丙申
丁酉
戊戌
己亥
庚子
辛丑
丁、壬
壬寅
癸卯
甲辰
乙巳
丙午
丁未
戊申
己酉
庚戌
辛亥
壬子
癸丑
戊、癸
甲寅
乙卯
丙辰
丁巳
戊午
己未
庚申
辛酉
壬戌
癸亥
甲子
乙丑
由上可見,農歷的月份,地支是固定的,天干卻不固定,要經過推算才能排出 。注意:農歷的閏月是不記干支的 。
例如:2006年為‘丙戌’年,查天干年份為‘丙’子頭,在上表的第三行,其正月為庚寅,二月為辛卯,三月為壬辰,余類推 。


六、速查干支紀日法


從已知日期計算干支紀日的公式為:
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
其中 C 是世紀數減一,y 是年份后兩位,M 是月份,d 是日數 。1月和2月按上一年的13月和14月來算 。奇數月i=0,偶數月i=6 。G 除以10的余數是天干,Z 除以12的余數是地支 。

計算時帶[ ]的數表示取整 。
例如:查2006年4月1日的干支日 。將數值代入計算公式 。
G =4*20 + [20 / 4] + 5*06 + [06 / 4] + [3 * (4 + 1) / 5] + 1 – 3 =117
除以10 余數為 7,天干的第7位是‘庚’ 。
Z =8*20 + [20 / 4] + 5*06 + [06 / 4] + [3 * (4 + 1) / 5] + 1 + 7 + 6 =213
除以12 余數為 9,地支的第9位是‘申’ 。
答案是:2006年4月1日的干支日是庚申日 。

【天干地支和算法詳解】
天干:甲4、乙5、丙6、丁7、戊8、己9、庚0、辛1、壬2、癸3
地支:子4、丑5、寅6、卯7、辰8、巳9、午10、未11、申12、酉1、戌2、亥3
以公元年的尾數在天干中找出對應該尾數的天干,再將公元紀年除以12,用除不盡的余數在地支中查出對應該余數的地支,這樣就得到了公元紀年的干支紀年 。


(一)干支紀年法的傳統算法
一.干支紀年是我國傳統的紀年方法 。
1.干和支的含義:干支是天干,地支的合稱 。

干指天干,共有10個符號:
甲 乙 丙丁 戊 己庚辛 壬 癸
支指地支,共有12個符號:
子 丑寅 卯 辰 巳 午 未 申 酉 戌 亥
2.干和支組合后用于紀年 。即:將十天干和十二地支按順序搭配組合成干支,用于紀年 。按此排法,當天干10個符號排了六輪與地支12個符號排了五輪以后,可構成60干支 。續排下去又將恢復原狀,周而復始,即如民間所說“六十年轉甲子” 。

二.結合實際了解“十二地支”

1.用十二種動物分別與十二地支相配成為“十二生肖年” 。(見下圖)如凡是含有“子”的干支年,就是“鼠年”,這一年里出生的人都是屬“鼠”;凡是含有“丑”的干支年就是“牛年”,這一年進而出生的人都是屬“?!?。以此類推 。(如下表)

十二生肖年
子鼠 丑牛 寅虎 卯兔 辰龍 巳蛇 午馬 未羊 申猴 酉雞 戌狗 亥豬

2. 以十二地支來表示十二時辰 。
一日有二十四小時,而我國傳統則以十二個時辰來表示,即一時辰是二小時 。(如下表)
二十四小時和十二時辰對照表
子丑寅卯辰己
23-01:01-03:03-05 :05-07:07-09:09-11
午未申酉戊亥
11-13:13-15:15-17:17-19:19-21:21-23

(二)干支紀年法的簡便算法
傳統的計算法,必須知道一個已知年,然后往前后推算,有一定的難度,下面我給大家介紹一種干支紀年法的簡便算法,每個字都有對應的一個符號 。如下表:
4567890123
甲 乙 丙丁 戊 己 庚 辛壬 癸
45678910110123
子 丑 寅卯 辰 巳 午 未 申 酉 戌 亥
45678910 11 01 23
鼠 牛 虎 兔 龍 蛇 馬 羊 猴 雞 狗 豬
年份的最后一個數字就對應天干的相應的字,然后用年份除以12所得的余數,用這個余數去找相對應的地支字和十二生肖字,于是天干地支字的組合便是干支紀年,對應的生肖字便是生肖紀年 。如2006年,6對應的天干字是丙字,2006除以12的余數是2,2所對應的地支字是戌字,所對應的生肖字狗字,所以2006年是丙戌年,狗年 。1898年,8對應的天干字是戊字,1898除以12的余數是2,2所對應的地支字是戌字,所對應的生肖字狗字,所以18986年是戊戌年,狗年 。1911年,1對應的天干字是辛字,1911除以12的余數是3,3所對應的地支字是亥字,所對應的生肖字豬,所以1911年是辛亥年,豬年 。1901年,1對應的天干字是辛字,1901除以12的余數是5,5所對應的地支字是丑,所對應的生肖字牛,所以1901年是辛丑年,牛年 。
所以,有了干支紀年法的簡便算法,我們就方便的多了 。