天干地支(Heavenly Stems and Earthly Branches),简称“干支”,是中华传统文化中用于纪年、纪月、纪日、纪时的独特历法系统。它由十天干和十二地支依次相配,组成六十个基本单位,循环往复,故称“六十甲子”。这一系统不仅是中国古代历法的核心,也是命理八字、中医五运六气等学科的基础。
许多网友在查询万年历时,往往只关注结果,却对背后的推算逻辑感到困惑。本文将深入拆解天干地支的公式,从最简单的年份计算到复杂的日期推算,为您提供一套完整、可操作的计算体系。
| 类别 | 列表 | 对应数字(用于计算) |
|---|---|---|
| 天干 | 甲、乙、丙、丁、戊、己、庚、辛、壬、癸 | 1 - 10 (0视为10) |
| 地支 | 子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥 | 1 - 12 (0视为12) |
计算年份的干支是最基础也是应用最广的部分。无论公历年份多大,只需掌握以下数学模型即可快速心算或笔算。
设公历年份为 Y。为了计算方便,我们通常采用“公元4年甲子年”作为基准点。
注:若余数为0,则分别对应第10位天干“癸”和第12位地支“亥”。
由于天干每10年一循环,地支每12年一循环,我们可以简化记忆:
通过年份的个位数直接确定天干:
示例:2024年,尾数是4,对应天干为“甲”。
通过 (年份 - 3) ÷ 12 的余数确定地支:
示例:2024年,(2024-3)=2021,2021÷12=168...余5。余数5对应地支“辰”。
综上,2024年为甲辰年。
月的干支计算比年复杂,因为月份的划分依据的是节气,而非农历初一。立春为正月始,惊蛰为二月始,以此类推。地支固定不变:正月寅、二月卯、三月辰...
关键在于确定月干,这取决于当年的年干。口诀如下:
甲己之年丙作首,乙庚之岁戊为头。
丙辛之年寻庚起,丁壬壬位顺行流。
更有戊癸何方发,甲寅之上好追求。
确定正月干支后,后续月份按六十甲子顺序顺推即可。例如甲己年正月丙寅,二月即为丁卯,三月戊辰...
日的干支是万年历中最难手动计算的部分,因为不存在简单的“年份决定日干”的规律。历史上常用“日干支基数法”或数学上的蔡勒公式(Zeller's congruence)进行推导。
设日期为 Y年M月D日。若月份为1月或2月,则视为上一年的13月、14月处理。
注:[]表示取整部分,/表示除法取整。M的取值需查表(1月=13, 2月=14, 3月=1...)。
对于日常使用,建议参考万年历工具,但在理解原理后,您会发现这并非玄学,而是精密的数学逻辑。
一天的开始是子时(23:00-01:00)。时支是固定的,子时对应鼠(1),丑时对应牛(2)... 时干则由日干决定。
| 日干 | 子时天干 | 口诀 |
|---|---|---|
| 甲、己 | 甲 | 甲己还加甲 |
| 乙、庚 | 丙 | 乙庚丙作初 |
| 丙、辛 | 戊 | 丙辛从戊起 |
| 丁、壬 | 庚 | 丁壬庚子居 |
| 戊、癸 | 壬 | 戊癸何方发,壬子是真途 |
示例:某日为“丁”日,查表知子时天干为“庚”,故子时为“庚子时”。丑时顺推为“辛丑时”,以此类推。
干支系统并非一蹴而就,其起源可追溯至远古。以下梳理了网民普遍关心的几个历史节点与冷知识。
相传黄帝时期,大挠氏始作甲子,用以纪日。此时可能尚未用于纪年。
史学界公认干支纪年法在此时正式普及并固定下来,此前虽有使用但混乱。
王莽时期曾短暂尝试改革历法,但干支系统因其强大的数学循环特性被保留。
除了传统命理,干支在中医(五运六气)、天文历法、甚至化学元素命名(如旧称)中均有体现。
很多人混淆“生肖年”与“干支年”。实际上,生肖只是地支的一部分(子鼠、丑牛...)。 关键区别:生肖的切换点是立春,而非春节(大年初一)。
⚠️ 注意:如果您出生在1月或2月初,且未过立春,那么在命理和干支历上,您仍属于上一年的生肖。例如2023年2月4日立春,此前出生者属兔(癸卯),此后出生者属龙(甲辰)。
公元前的年份没有“公元0年”,1BC之后是1AD。在计算时,通常将公元前年份加1(或减1,视具体公式定义)后再套用公式。例如公元前1年,在数学上可能对应0或-1,需小心处理负数取模的问题。简便算法:(3 - Y) % 10 等,但建议查阅专业万年历。
干支是纯粹的太阳历成分,与月相盈亏无关。农历是阴阳合历,月份看月亮,年份看太阳(通过置闰)。干支纪年只与太阳位置(节气)严格对应,因此干支年与农历年的起止时间不完全重合(以立春为界)。
使用“60年循环”特性。如果知道2024是甲辰年,那么2024-60=1964也是甲辰年,1904也是。只需计算目标年份与已知干支年的差值,取模60,即可快速推算。
八字即“年柱、月柱、日柱、时柱”。分别对应年干支、月干支、日干支、时干支。需要结合出生地点的真太阳时来校正时辰,这是高阶应用,基础在于掌握上述各部分的推算公式。