首页Home 产品Products 服务Services 案例Work 知识库Blog 关于About 联系Contact
KNOWLEDGE · 2026-08

天干地支入门:六十甲子与干支纪年的由来

Ganzhi (Heavenly Stems & Earthly Branches) explained

#干支 #六十甲子 #天干地支 #易学入门

什么是干支

干支由十干与十二支搭配成六十对组合,依顺序排成一个周期,这个周期称为「一甲子」或「花甲之年」。 天干地支是十干与十二支的合称,又称「十天干十二地支」。 干支之实可以上追至商代甲骨文;干支之名本为「幹枝」,东汉班固《白虎通德论》论商汤之名时说: 「甲乙者幹也,子丑者枝也」——好比树干与树枝的关系。

详细内容

干支是由十干与十二支搭配成的六十对組合順序排成的一周期。該周期称为一甲子或花甲之年。天干地支是十干与十二支的合称、又稱為十天干十二地支。干支之實,可以上追至出土商代甲骨文。干支之名,本來叫幹枝,上追至東漢班固白虎通德論。論商湯名時,曰甲乙者幹也,子丑者枝也,好比樹幹樹枝,有主幹分枝之意,後來簡寫成干支。

== 歷史 ==

古代中國用以记录年、月、日子及时期。汉字文化圈地区也曾跟随古代中国用干支記录时间。因干支纪年法纪年时一周期为六十年,所以也用“甲子之年”或“花甲之年”来形容(60+1虚龄)或岁数之一的老人。考古发现,最早在商朝后期帝王帝乙时的一块甲骨上,刻有完整六十甲子,说明在商朝时已经开始使用干支纪日了。根据考证,春秋时期鲁隐公三年二月己巳(西元前720年2月22日,即農曆辛酉年属雞)曾发生日食,这是中国古代使用干支纪日的確切證據。而使用皇帝年号纪年则始自汉武帝太初年号。干支曆作为中国传统历法,在古代中国一直使用,从未间断,对研究历史相當有帮助,便於推算历史时间。

== 干支年號 ==

=== 起始 ===天干地支之起始點為5023年前的公元前2997年,與之減去公元紀年換算後即為六十甲子紀年法。

=== 干支与公元纪年对照表 ===公元紀年天干地支的是減去分別在以六十甲子:紀年以黃帝紀元後建立天干地支為開始,來自約公元前2997年+,循環以黃帝紀元(格里曆前2997年)即元年開始計算,其餘月份安排等與農曆相同。換算方法為格里曆年份+2997為干支年份,如2026年,則為干支2026+2997=5023年。起即由為六十甲子十天干十二地支紀年法計算機方法。

== 循環天干地支(甲子至癸亥年) ==原則要求天干与地支配对使用,兩兩相配,始於甲子,終於癸亥,六十為一循環。即如下两组配对且交叉使用:

=== 十天干与十二地支的配对规则 ===根據紅色字體的又遁還曆天干上(甲、丙、戊、庚、壬)而配對紅色字體的地支上(子、寅、辰、午、申、戌);即由起藍色字體的十天干(乙、丁、己、辛、癸)並配對藍色字體的十二地支(丑、卯、巳、未、酉、亥),古人也把紅色字體是陽干、陽支;藍色字體是陰干、陰支,陽干配陽支;陰干配陰支,其實也是一樣的意思。

=== 天干及地支配对十干與十二支列表 ===

=== 各甲子年份干支為60個配對名稱列表 ===

太平天国时,曾把“丑”改为“好”,“卯”改为“荣”,“巳”改为“优”,“亥”改为“开”。

== 干支纪年 ==《御批歴代通鑑輯覽》載記軒轅黃帝「作甲子,甲乙丙丁戊己庚辛壬癸謂之幹,子丑寅卯辰巳午未申酉戌亥謂之枝,枝幹相配以名日,而定之以納音。」創立干支紀年法,將十天干和十二地支分別組合起來,共配成為六十組合,用來表示年、月、日之次序,周而復始,循環使用。干支纪年萌芽于西汉,始行于王莽,通行于东汉后期。汉章帝元和二年(西元85年,即農曆乙酉年属鷄),朝廷下令在全國推行四分曆與干支紀年。可是,其实是类似的太岁纪年,用太岁所在位置來纪年,干支只是用以表示十二辰(把黄道附一周天分为十二等分);木星(太岁)11.862年绕天一周,所以太岁约86年会多走过一辰,这叫做“超辰”。在颛顼曆上,西汉武帝太初元年(前104年,即農曆丙子年属鼠)是太岁在丙子,太初曆用超辰法改变为丁丑。汉成帝末年,由刘歆重新编订的三統曆又將太初元年改变为丙子,把太始二年(前95年,即農曆乙酉年属鷄)从乙酉改变为丙戌。而东汉的曆學者没用超辰法。所以太岁纪年和干支纪年从太始二年表面一样。干支纪年,周期第一年为“甲子”(如黄巾起事口号为“岁在甲子,天下大吉”),第二年为“乙丑”,依此类推,60年一周期;周期完了重复使用,周而复始,循环下去。60甲子年后的天干地支,如:1744、1804、1864、1924、1984、2044年同为甲子年;1745、1805、1865、1925、1985、2045年同为乙丑年,依次类推。這種作記法俗稱一為「天運歲次○○年」。

=== 干支紀年→西曆 ===西曆新年和華夏新年或干支曆新年相差少於兩個月;在西曆新年後,華夏新年或干支曆新年之前,例如西曆1月2日,則續用上年之干支。夏曆以正月初一為一年之始,而干支曆八字則以立春為一年之始。天干用序號1至10表示甲到癸,地支用1至12對應子到亥。

6×干-5×支+3(或1983)+60n=西曆年(n為整數)即,設年是西元後某年,干是年的天干(甲=1,乙=2,丙=3,…,癸=10),支是年的地支(子=1,丑=2,寅=3,…,亥=12),則年≡6干-5支+3(mod 60)證明甲子=1,乙丑=2,丙寅=3,…,癸亥=60。設(干,支)是六十干支的第x組,則x和干分別除以10時餘數相同:x≡干(mod 10)同乘以6:6x≡6干(mod 6×10)x和支分別除以12時餘數相同:x≡支(mod 12)同乘以5:5x≡5支(mod 5×12)兩式相減:6x-5x≡x≡6干-5支(mod 60)西元3年是癸亥年,是六十干支的第60組兼最後一組:年≡x+3(mod 60)代入即得:年≡6干-5支+3(mod 60)。

註和例子註一:第一行的意義是在60年循環中的位置。負數並無不可,因後面可任意加或減60的倍數(n是整數);但若規定頭一行須為正數(第1至60個之間),則當(干-支)是負數時,在括號內加12或在括號外加60(12×5=60)。當且僅當(干-支)是負數時,[(干-支)×5+干]不是1至60間的整數。註二:為何加3或1983:因西元4年和1984年是甲子年(1),1+3=4,1+1983=1984。這兩年的差額1980是60的倍數。3容易記,1983年是小於現在的年份中,最接近現在者。例子1:辛亥年。辛是天干中的8,亥是地支中的12。6×8-5×12=-12。1983-12=1971,1971+60=2031,1971-60=1911;計算得2031年、1971年和1911年都是辛亥年。例子2之1:癸巳年到辛酉年最少隔幾年?癸=10,巳=6,辛=8,酉=10,6×(8-10)-5×(10-6)=-32,-32+60=28,故最少隔28年。例子2之2:反過來問,辛酉年到癸巳年最少隔幾年?只要將上述答案取相反數,再加60,使之為正整數(或說用60減去上述答案),即為答案,故最少隔-28+60=32年。此運算特性符合一般大眾對於循環事項的先後間距的認知。可見所有亥年在60循環中都相當於[天干×6]:乙亥年:12;丁亥年:24;己亥、辛亥、癸亥:36,48,60。這是很簡單直接的(第一次亥年是12),亦可從以上公式得出。

=== 西曆→干支紀年 ===將西元後年分減3,再除以10,所得餘數即為第幾干(餘0則視為第10干);將西元後年分減3,再除以12,所得餘數即為第幾支(餘0則視為第12支)。

例如:西元1995年1995-3=1992,1992除以10的餘數是2,第2干——乙;1992除以12的餘數是0,第12支——亥,故西元1995年为乙亥年。

再如:西元1861年1861-3=1858,1858除以10的餘數是8,第8干——辛;1858除以12的餘數是10,第10支——酉,故西元1861年为辛酉年。西元前纪年与干支纪年的换算表:

如:西元前155年尾数5对应天干的“丙”;155除以12得余数11,对应地支的“戌”。该年为丙戌年。西元前8年则为癸丑年;西元前2年為己未年。

== 干支纪月 ==史書中通常以序數紀月,干支紀月除了月建(月支)之外,月干在研究中國歷史時並不普遍,而較常用於計算八字。月建於春秋時期即已可見。「以子建月」即以日南至的十一月為一歲的開始。可能到了唐代才配上天干。此外由於各帝王可能採用不同曆法,因此干支紀月亦不見得準確。例如三國時期用景初曆,可能出現在不同國家,卻在不同日換月分的情況;一國是初一,另一國是前一個月的月末,此時月干支即不同。計算八字時使用的干支曆,與史書、傳統曆法(包括農曆)或使用太陰曆的紫微斗數有所不同。傳統曆法以月亮的盈亏周期作为一月,而八字計算则以二十四节气其中的十二节气(非中氣)所在時刻(非以日首)分月,并赋以地支之名,如大雪小寒之间为子月,小寒到立春为丑月。因此八字計算過了當月節氣發生之時刻才換月干支,可能產生月中與日中換干支的情況。計算八字時使用的干支曆以立春時刻為一年之始,每五年一循環,每月的天干由该月支所在年的天干决定。例如:若某年的子月所在之年为甲子年,则该子月为丙子月,紧接着其后的丑月是丁丑月。年上起月的歌訣,《五虎遁月歌》:甲己之年丙作初,乙庚之歲戊為頭,丙辛歲首從庚起,丁壬壬位順流行,若問戊癸何方法,甲寅之上好推求。具体推算如下:丙寅月到乙丑月:一月寅月(正月),二月卯月,三月辰月,四月巳月,五月午月,六月未月,七月申月,八月酉月,九月戌月,十月亥月,十一月子月(冬月),十二月丑月(臘月)壬戌月到辛酉月:一月戌月(正月),二月亥月,三月子月,四月丑月,五月寅月,六月卯月,七月辰月,八月巳月,九月午月,十月未月,十一月申月(冬月),十二月酉月(十二月)

=== 丙寅月 ===公元紀年以下丙寅年六十月干紀年紀元後天干地支為開始,來自約(公元5年)開始計算:

=== 壬戌月 ===公元紀年以下壬戌年六十月干紀年紀元後天干地支為開始,來自約(公元前175799年)開始計算:

== 干支纪日 ==干支纪日,60週期的時候大致合2个月一周期;一周期完了重複使用,周而復始,循环下去。天文計算指出干支纪日至少始于《春秋》所記,鲁隐公三年夏历二月己巳日(周平王五十一年,西元前720年2月22日)之日食。儒略曆平年有365日,而每4年一次,西元年能由4整除,閏年有366日,平均一年365.25日,4年1461日和一甲子的60日,最小公倍數是29220日,合80年。這就是說,過了羅馬失閏之後,每80年,干支紀日對應的儒略曆月日日期會反覆一次循環。格里曆平年有365日,而每4年一次,西元年份可由100倍數以未有400年一次整除(沒有閏年,如1700、1800、1900、2100、2200、2300年為只平年;如2000、2400年為閏年),閏年有366日,平均一年365.2425日,所以400年146097日和一甲子的60日,最小公倍數是2921940日,合8000年。這就是說,每8000年,干支紀日對應的格里曆月日日期若沒有遇到能由100倍數以未有400整除的西元年,會反覆一次循環,但整體而言,假設未來從不改格里曆,每8000年,干支紀日對應的格里曆月日日期才會反覆一次完整的合共循環。1912年(中華民國元年)2月18日(農曆壬子年正月初一日),以及1949年10月1日(農曆己丑年八月初十日),都是“甲子日”。

=== 干支紀日与西历换算 ===公式法若為天干的「甲、乙、……、壬、癸」編上1,2,……,10等序號;地支的「子、丑、……、戌、亥」亦編上1,2,……,11,12等序號,從已知日期計算干支紀日的公式為:儒略曆

g z = 45 C + 5 y + ⌊ y 4 ⌋ + 30 × ( M + 1 ) + ⌊ 3 × ( M + 1 ) 5 ⌋ + d + 5 {\displaystyle gz=45C+5y+\left\lfloor {y \over 4}\right\rfloor +30\times (M+1)+\left\lfloor {3\times (M+1) \over 5}\right\rfloor +d+5}

g = 5 C + 5 y + ⌊ y 4 ⌋ + ⌊ 3 × ( M + 1 ) 5 ⌋ + d + 5 {\displaystyle g=5C+5y+\left\lfloor {y \over 4}\right\rf

参考来源

本文内容整理改写自「维基百科·干支」词条(CC BY-SA 4.0 协议), 原文版权归原作者所有。本页在改写基础上补充了结构说明与导读。

六十甲子一轮回:干支不只是纪年,更是古人给时间编的一套码。