《漢書·律曆志》筆記(2):表格與常數

2025-12-25
13 min read

《漢書·律曆志》卷下的主要內容是三統曆的常數、計算法和以三統曆推算的自太皞以來到漢代的年曆。三統曆設置的常數是曆法計算的基礎。三統曆設置的常數,包括用於計算年月日的統母、計算五星運行的紀母,和最重要的太極上元。以下從太極上元開始,依次對這些常數的數值計算和意義進行解釋。三統曆對統法的解釋牽扯到很多律曆和數術的概念,導致原本十分清楚的計算過程難以理解。所以在解釋統母之前,直接將這些數字與三統曆基本基本時間單位的時間長度聯繫起來進行解釋。在統母、紀母部分之後,三統曆還有一份五星運行軌跡、日期、度數的表格,叫做五步。這裏將五步的表格放在常數後面介紹。另外,除了這些常數和五星運行數據之外,三統曆的計算還要用到六十干支表、二十四節氣表、十二次度數表,以及二十八宿距度表,這些表格解釋完常數和五步之後進行介紹。

太極上元的設定

三統曆設立了太極上元。太極上元是日月、五星的共同會合週期,也就是在這一時刻,日月五星的在天空中位於同一經度,同時這一時刻必須恰好是天統甲子統首年天正月朔日夜半,而且冬至也正好在這一時刻。從數學上來看,太極上元就是日月、五星週期的最小公倍數。已知日月合朔的週期爲 4617 年;木星週期 1728 年,金星週期 3456 年,土星週期 4320 年,火星週期 13824 年,水星週期 9216 年,五星週期的最小公倍數爲 138240,也就是五星會合週期,或稱作五星會終。那日月週期和五星週期的最小公倍數就是 23639040。《律曆志》在卷上末尾處指出太極上元的具體數目是 23639040,正好是日月五星週期的最小公倍數;又在世經部分指出太初元年距上元 143127 年。

設立太極上元的意義在於便利曆法計算,更確切地說是爲了方便計算五星出現的時間和度數。原因在於三統曆將天體運行看作一個個週期,要計算某年某月某日處在這些週期的哪個位置,就可以利用這些週期進行計算。而要考慮所有天體運行的情況,勢必要考慮所有天體運行的週期。這就是設立太極上元的理念。而這一個大週期對曆法計算的意義將會在三統曆算法的基本思路部分詳細討論。

三統曆基本時間單位的時間長度

三統曆對曆法基本數據的編排不夠清楚明晰,同時又牽扯到音律、度量衡等等,使得本來可以很清楚的數據變得難以理解。所以這裏以年、月、日爲單位計算出三統曆的基本時間單位。這樣與統母中的數字對照,不僅一目瞭然,而且對於後面用這些數字來進行曆法計算,也會方便很多。這裏先列出基本時間數據,和簡明的計算公式,下面再詳細解釋這些數字。

三統曆的基本時間單位有(時刻、)日、月(朔望月)、節氣、中氣、年(回歸年)、章、統、元等。三統曆的一個月是一個朔望月,一年是一個回歸年。注意,在實際的曆法編排中,一個月能夠精確地對應上一個朔望月,但是曆法中的一年並不能精確對應一個回歸年。

時間單位 中氣
1
策餘 8080 $365 \frac{385}{1539} - 360 = 5 \frac{385}{1539} = \frac{8080}{1539}$
1 $29 \frac{43}{81} = \frac{2392}{81} = \frac{月法}{日法}$
節氣 $\frac{1}{24}$ $365 \frac{385}{1539} \div 24 = \frac{70265}{4617} = 15 \frac{1010}{4617}$
中氣 $\frac{1}{12}$ $\frac{235}{19} \div 12 = \frac{235}{228} = \frac{章月}{章中}$ $365 \frac{385}{1539} \div 12 = \frac{140530}{4617} = \frac{中法}{元法} = 30 \frac{2020}{4617}$ 1
1 $\frac{235}{19} = \frac{章月}{章歲}$ $365 \frac{385}{1539} = \frac{562120}{1539} = \frac{周天}{統法}$ 歲中 12
閏法/章歲 19 章月 235 $365 \frac{385}{1539} \times 19 = \frac{10680280}{1539} = \frac{562120}{81}$ 章中 $12 \times 19 = 228$
周至 周至 $3 \times 19 = 57$
統法 $81 \times 19 = 1539$ 統月 $81 \times 235 = 19035$ 周天 $81 \times \frac{562120}{81} = 562120$ 統中 $81 \times 228 = 18468$
元法 $3 \times 1539 = 4617$ 元月 $3 \times 19035 = 57105$ $3 \times 562120 = 1686360$ 元中 $3 \times 18468 = 55404$
一個月食週期 朔望之會 135
會月 會月 $會數 \times 朔望之會 = 47 \times 135 = 6345$

: 三統曆基本時間單位年月日時長

最後兩行是月食週期。一個月食週期 135 個月,總共 23 次月食。47 個月食週期總共 6345 個月。

統母:日月運行的基本參數

三統曆以 19 年爲一章。十九年一章的意義是月相以十九年爲週期。十九年七閏,總共 $12 \times 19 + 7 = 235$ 月。三章爲一周至,周至 57 年。三統曆又將 81 章定爲一統,一統 $19 \times 81 = 1539$ 年,叫做統法。一統總共有 19035 個月。三統爲一元,一元總共 $3 \times 81 \times 19 \times = 4617$ 年,叫做元法。一元總共有 57105 個月。將這些寫成算式就是:

$$ \begin{align*} \text{章歲} &=19\\ \text{章月} &=19 \times 12 + 7\\ &=235\\ \text{周至} &= 3 \times \text{章歲}\\ &=3 \times 19\\ &=57\\ \text{統法} &= 81 \times \text{章歲}\\ &=81 \times 19\\ &= 1539\\ \text{統月} &=81 \times \text{章月}\\ &= 81 \times 235\\ &=19035\\ \text{元法} &= 3 \times \text{統歲}\\ &=3 \times 1539\\ &= 4617\\ \text{元月} &=3 \times \text{統月}\\ &= 3 \times 19035\\ &=57105 \end{align*} $$

曆法最基本的常數是朔望月和回歸年的長度。三統曆將朔望月長度定爲 $29 \frac{43}{81} = \frac{2392}{81}$ 日,而一年長度是由朔望月算出來的。十九年一章,一章有七個閏月,總共 235 個月,十九年的總日數就是 $\frac{562120}{81}$,一年平均日數就是 $365 \frac{385}{1539}$。寫成算式就是:

$$ \begin{align*} \text{一月日數}&= 29 \frac{43}{81}\\ &=\frac{2392}{81}\\ \text{一章日數}&= \text{章月} \times \text{一月日數}\\ &= 235 \times \frac{2392}{81}\\ &= \frac{562120}{81}\\ \text{一年平均日數}&= \text{一章日數} \div \text{章歲}\\ &= \frac{562120}{81} \div 19 \\ &= 365 \frac{385}{1539} \end{align*} $$

這裏出現的所有數字三統曆都給了它一個名字。下面的表格就是三統曆給每個數字所起的名字:

統母 數值
日法 81
閏法/章歲 19
統法 1539
月法 2392
周天 562120
章月 235

三統曆認爲月食週期是 $5 \frac{20}{23} = \frac{135}{23}$ 個月,也就是 135 個月總共有 23 次月食。135 月就稱作朔望之會。47 個月食週期正好等於 27 章,47 稱作會數,也就是:

$$ \begin{align*} &\ \ \ \ \ \ \text{47 個月食週期}\\ &= 47 \times 135 \\ &= 6345\\ &=\text{27 章}\\ &= 27 \times 235\\ \end{align*} $$

47 個月食週期等於 6345 個月,叫做會月

二十四節氣依次一爲節氣、一爲中氣,一年就是十二節氣、十二中氣。一章的中氣總數就是 $19 \times 12 = 228$,叫做章中。一統 1539 年,一統的中氣總數是 $1539 \times 12 =18468$,叫做統中。一元三統 4617 年,一元的中氣總數就是 $4617 \times 12 = 55404$,叫做元中

這些參數統稱爲統母。也就是下面統母表中列的這些。

統母 定義 數值 律曆志定義
日法 一日分爲 81 分 81 元始黃鐘初九自乘,一龠之數,得日法。
閏法 19 歲一章,一章 7 閏 19 合天地終數,得閏法。因爲章歲
統法 一統的年數 1,539 以閏法乘日法,得統法。
元法 一元的年數 4,617 參統法,得元法。
會數 47 個月食週期等於 27 個日月運行週期 47 參天九,兩地十,得會數。
章月 日月運行合併週期 235 五位乘會數,得章月。
月法 一月日數 2,392 推大衍象,得月法。
通法 月法與中法的公約數 598 四分月法,得通法。
中法 一元中每個中氣的總日數 140,530 以章月乘通法,得中法。
周天 一統的日數 562,120 以章月乘月法,得周天。
歲中 每年的中氣數 12 以三統乘四時,得歲中。
月周 一章中月行週期數 254 以章月加閏法,得月周。
朔望之會 月食週期 135 參天數二十五,兩地數三十,得朔望之會。
會月 一會數的總月數 6,345 以會數乘朔望之會,得會月。
統月 一統的總月數 19,035 參會月,得統月。
元月 一元的總月數 57,105 參統月,得元月。
章中 每章歲的中氣數 228 以閏法乘歲中,得章中。
統中 每統歲的中氣數 18,468 以日法乘章中,得統中。
元中 每元歲的中氣數 55,404 參統中,得元中。
策餘 一年長度與每年中氣總數的差 8,080 什乘元中,以減周天,得策餘。
周至 三章的年數 57 參閏法,得周至。

紀母:五星運行的基本參數

紀母,是推算五大行星運行的基本數據。外行星木星(歲星)、土星(鎮星)、火星(熒惑)有小周、歲數、見中分、積中、中餘、見中法、見閏分、積月、月餘、見月法、見中日法、見月日法十二個參數;而內行星金星(太白)、水星(辰星)除了五星都有的參數之外,還有晨中分、夕中分與積中、中餘,和晨閏分、夕閏分與積月、月餘十二個參數。

在紀母最後,還列出了紀母各個數值之間的關係:

以星行率減歲數,餘則見數也。
東九西七乘歲數,并九七爲法,得一,金、水晨夕歲數。
以歲中乘歲數,是爲星見中分。
星見數,是爲見中法。
以歲閏乘歲數,是爲星見閏分。
以章歲乘見數,是爲見月法。
以元法乘見數,是爲見中日法。
以統法乘見數,是爲見月日法。

首先,小周是五大行星的小週期;歲數則是五大行星周天的最少整年數。例如,木星一個小周的粗略週期是 12 年,而一個大週期的年數,即歲數則是 1728。它的意義是木星在 1728 年中行 145 周天。

見中分是行星歲數所含中氣數,每年十二個中氣,歲數所含中氣數就是:$\text{見中分} = \text{歲數} \times 12$。而積中、中餘是見中分與見中法的商和餘數。見中法是行星早晨初見於東方,到下一次早晨初見於東方的週期,所以叫做見數(見應讀 xiàn,胡甸切),而見數的分母(法)就是見日法。從天文上來說,行星與太陽交會時,在地球上就看不到行星。但是看不到的次數和行星出現的次數是相同的。見閏分是歲數中所含的閏月數。十九年七閏,所以在歲數中的總閏月數就是:$歲數 \times \frac{7}{19}$,$見閏分 = 歲數 \times 7$。

$$ \begin{align*} &\ \ \ \ \ \frac{\text{見中分}}{\text{見中法}}\\ &=積中\frac{中餘}{見中法}\\ &=(見中分 \ \mathbf{div}\ \text{見中法})\frac{\text{見中分} \ \mathbf{mod}\ 見中法}{\text{見中法}}\\ 積中&=見中分 \ \mathbf{div}\ 見中法\\ 中餘&=見中分 \ \mathbf{mod}\ 見中法 \end{align*} $$

根據歲數、見數就可以算出一個見數中有多少個朔望月。將這個數化爲帶分數,分母叫做見月法,整數部分叫積月,分子叫月餘。

$$ \begin{align*} 歲數所含月數 &=歲數 \times 一年月數\\ &=歲數 \times \frac{235}{19}\\ &=\frac{歲數 \times 235}{19}\\ 見數所含月數&=歲數所含月數 \div 見中法\\ &=\frac{歲數 \times 235}{19} \div 見中法\\ &=\frac{歲數 \times 235}{19 \times 見中法}\\ &=(歲數 \times 235 \ \mathbf{div}\ (19 \times 見中法)) \frac{歲數 \times 235 \ \mathbf{mod}\ (19 \times 見中法)}{19 \times 見中法})\\ &=積月 \frac{月餘}{見月法}\\ 見月法&=19 \times 見中法\\ 積月&=歲數 \times 235 \ \mathbf{div}\ (19 \times 見中法)\\ 月餘&=歲數 \times 235 \ \mathbf{mod}\ (19 \times 見中法) \end{align*} $$

見月日法是見月法和日法(81)的積,即 $見月法 \times 日法 = 81 \times 見月法$,見中日法則是見月日法的三倍,即 $見月日法 \times 3$。以上是所有行星都有的參數。

除了這幾個參數之外,金星還有晨中分、夕中分與積中、中餘,和晨閏分、夕閏分與積月、月餘十二個參數。原因在於金星和水星是內行星,它們的一個會合週期中包括一次晨見和一次夕見。這就可以算出一個晨見或夕見時段中中氣、閏月、月份的數量,分別化爲帶分數,就可以得出各自的積(這是積累的積,不是乘積的積)與小餘。

紀母 歲星 太白 鎮星 熒惑 辰星 公式
小周 12 16 30 64 64
歲數 1,728 3,456 4,320 13,824 9,216
見中分 20,736 41,472 51,840 165,888 110,592 $歲數 \times 12$
積中 13 19 12 25 3 $積中\frac{中餘}{見中法}=\frac{見中分}{見中法}$
中餘 157 413 1,740 4,163 32,469
見中法 1,583 2,161 4,175 6,469 29,041
見閏分 12,096 24,192 30,240 96,768 64,512 $\frac{見閏分}{章歲} = \frac{歲數 \times 7}{19}$
積月 13 19 12 26 3 $積月\frac{月餘}{見月法}=\frac{歲數 \times 235}{見月法}$
月餘 15,079 32,039 63,300 52,954 510,423
見月法 30,077 41,059 79,325 122,911 551,779 $見月法 = 19 \times 見中法$
見中日法 7,308,711 9,977,337 19,275,975 29,867,373 134,082,297 $見中日法 = 3 \times 見月日法 = 4617 \times 見中法 = 元法 \times 見中法$
見月日法 2,436,237 3,325,779 6,425,325 9,955,791 44,694,099 $見月日法 = 見月法 \times 日法 = 見月法 \times 81$
晨中分 23,328 62,208
積中 10 2
中餘 1,718 4,126
夕中分 18,144 48,384
積中 8 1
中餘 856 19,343
晨閏分 13,068 36,288
積月 11 2
月餘 5,191 114,682
夕閏分 10,584 28,224
積月 8 1
月餘 26,848 395,741

五步:五行運行軌跡表

五星雖然實際上一直不間斷地作繞日運動,但是在地球上的人看來,它們的軌跡則有時順、有時留,甚至有時逆行。五步就是記錄五星視運動軌跡的表格。外行星的運行軌跡經過六個階段:順、始留、逆、復留、復順、伏。五星運行以從西往東運動爲順行,而從東往西運動爲逆行;留是五星視位置停止不變,而伏則是行星距太陽太近,在地球上看不到。內行星的軌跡與外行星不同。內行星的視運動經過晨始見和夕始見兩個部分,每一部分經過五個階段:晨始見、逆、始留、順、順疾、伏;夕始見、順、順遲、始留、逆、伏。

外行星運動軌跡度數表

木星 土星 火星
運行軌跡 日數 日行度數 日數 日行度數 日數 日行度數
順行 121 $\frac{2}{11}$ 87 $\frac{1}{15}$ 276 $\frac{53}{92}$
25 0 34 0 10 0
逆行 84 $\frac{1}{7}$ 101 $\frac{5}{81}$ 62 $\frac{17}{62}$
$24 \frac{3}{7308711}$ 0 $33 \frac{862455}{19275975}$ 0 10 0
順行 $111 \frac{1828362}{7308711}$ $\frac{2}{11}$ 85 $\frac{1}{15}$ 276 $\frac{53}{92}$
$33 \frac{3330737}{7308711}$ $3 \frac{1673451}{7308711}$ $37 \frac{17170170}{19275975}$ $7 \frac{8736570}{19275975}$ $146 \frac{15689700}{29867373}$ $114 \frac{8218005}{29867373}$
一見 $398 \frac{5163012}{7308711}$ $33 \frac{3334737}{7308711}$ $377 \frac{18032625}{19275975}$ $12 \frac{13210500}{19275975}$ $780 \frac{15689700}{29867373}$ $415 \frac{8218005}{29867373}$
日行 $\frac{145}{1728}$ $\frac{145}{4320}$ $\frac{7355}{13824}$
金星 水星
運行軌跡 日數 日行度數 日數 日行度數
晨始見
逆行 6 $\frac{1}{2}$ 1 2
始留 8 0 2 0
順行 46 $\frac{33}{46}$ 7 $\frac{6}{7}$
順行疾 184 $1 \frac{15}{92}$ 18 $1 \frac{1}{3}$
83 $1 \frac{33}{92}$ $37 \frac{122029605}{134082297}$ $1 \frac{7}{9}$
晨見伏 327 $357 \frac{4365220}{9977337}$ $65 \frac{122029605}{134082297}$ $96 \frac{46610128}{134082297}$
夕始見
順行 $181 \frac{45}{107}$ $1 \frac{15}{92}$ $16 \frac{1}{2}$ $1 \frac{1}{3}$
順行遲 46 $\frac{33}{46}$ 7 $\frac{6}{7}$
$7 \frac{62}{107}$ 0 $1 \frac{1}{2}$ 0
逆行 6 $\frac{1}{2}$ 1 2
伏逆 $16 \frac{1295352}{9977337}$ $14 \frac{3069868}{9977337}$ 24 $6 \frac{58662820}{134082297}$
夕見伏 $257 \frac{1295353}{9977337}$ $226 \frac{6907649}{9977337}$ 50 $19 \frac{15419477}{134082297}$
一復 $584 \frac{1295353}{9977337}$ $584 \frac{1295352}{9977337}$ $115 \frac{122029605}{134082297}$ $\frac{122029605}{134082297}$

: 內行星運動軌跡度數表

表格

十二次初中終節氣度數表

十二次 初度數 中度數 終度數 總度數
0 星紀 初斗十二度 大雪 中牽牛初 冬至 終於婺女七度 $30\frac{1}{4}$
1 玄枵 初婺女八度 小寒 中危初 大寒 終於危十五度 30
2 諏訾 初危十六度 立春 中營室十四度 驚蟄 終於奎四度 31
3 降婁 初奎五度 雨水 中婁四度 春分 終於胃六度 30
4 大梁 初胃七度 穀雨 中昴八度 清明 終於畢十一度 30
5 實沈 初畢十二度 立夏 中井初 小滿 終於井十五度 31
6 鶉首 初井十六度 芒種 中井三十一度 夏至 終於柳八度 30
7 鶉火 初柳九度 小暑 中張三度 大暑 終於張十七度 31
8 鶉尾 初張十八度 立秋 中翼十五度 處暑 終於軫十一度 30
9 壽星 初軫十二度 白露 中角十度 秋分 終於氐四度 31
10 大火 初氐五度 寒露 中房五度 霜降 終於尾九度 30
11 析木 初尾十度 立冬 中箕七度 小雪 終於斗十一度 31

二十四節氣表,從冬至開始。注意,三統曆驚蟄、雨水,清明、穀雨的順序和現在的順序正好相反。

21 立冬 3 立春 9 立夏 15 立秋
22 小雪 4 驚蟄 10 小滿 16 處暑
23 大雪 5 雨水 11 芒種 17 白露
0 冬至 6 春分 12 夏至 18 秋分
1 小寒 7 穀雨 13 小暑 19 寒露
2 大寒 8 清明 14 大暑 20 霜降

二十八宿距度表

東方七宿 距度 北方七宿 距度 西方七宿 距度 南方七宿 距度
十二 二十六 十六 三十三
十二
十五 十二 十四 十五
十一
十七 十六 十八
十八 營室 十六 十八
十一 十七
七十五度 九十八度 西 八十度 百一十二度

上表周天總共 $$75 + 98 + 80 + 112 = 365$$ 度,沒有出現分數部分。按《淮南子·天文訓》,箕十一四分一,周天度數 $365 \frac{1}{4}$;《後漢書·律曆志》斗宿 $26 \frac{1}{4}$ 度,周天度數也是 $365 \frac{1}{4}$ 度。錢大昕認爲斗下脫“三百八十五分”。

曆法計算最基本的表格是六十干支表(或稱一甲數次表)。年月皆用干支來表示,六十一循環,往復無已。十天干、十二地支相互組合,可以形成週期爲六十的序列。下表是六十干支表,爲了便於計算,干支序數從 0 開始。

六十干支表(一甲數次表)

0 甲子 10 甲戌 20 甲申 30 甲午 40 甲辰 50 甲寅
1 乙丑 11 乙亥 21 乙酉 31 乙未 41 乙巳 51 乙卯
2 丙寅 12 丙子 22 丙戌 32 丙申 42 丙午 52 丙辰
3 丁卯 13 丁丑 23 丁亥 33 丁酉 43 丁未 53 丁巳
4 戊辰 14 戊寅 24 戊子 34 戊戌 44 戊申 54 戊午
5 己巳 15 己卯 25 己丑 35 己亥 45 己酉 55 己未
6 庚午 16 庚辰 26 庚寅 36 庚子 46 庚戌 56 庚申
7 辛未 17 辛巳 27 辛卯 37 辛丑 47 辛亥 57 辛酉
8 壬申 18 壬午 28 壬辰 38 壬寅 48 壬子 58 壬戌
9 癸酉 19 癸未 29 癸巳 39 癸卯 49 癸丑 59 癸亥

數學術語與符號

古代所用的數學術語與今天不同。要想瞭解《律曆志》中的計算,要先弄清楚古代人用的數學術語的意思,也就是它們相當於今天所用的哪些數學術語。

在《律曆志》所用的數學術語中,最重要的是法和實兩個。古人與現在的人不同,數學計算是以分數進行的,而不是用小數。所有的小數都會化成分數進行計算。分數分爲分母和分子兩部分 $\frac{分子}{分母}$ 。古人把分母叫做法,分子叫做實,也就是:$\frac{分子}{分母} = \frac{實}{法}$。

在根據序數推求干支時,從甲子開始數,但是在數字上要從 0 開始,而不是 1 開始。《律曆志》將這種做法叫做“算外”。不止是在數甲子時候需要算外,數十二次等都需要這樣做。

在進行分數計算時,有些常用的運算,例如整數除法和餘數。整數除法用 $\ \mathbf{div}\ $,例如 $5 \ \mathbf{div}\ 2 = 2$;而餘數用 $\ \mathbf{mod}\ $,如 $5 \ \mathbf{mod}\ 2 = 1$。

definition math notation
least common multiple $\mathbf{lcm}(2, 3) =6$ $\mathbf{lcm}(2, 3)$
integer division $5\ \mathbf{div}\ 2 = 2$ $\mathbf{div}$
Modulus $5\ \mathbf{mod}\ 2 = 1$ $\mathbf{mod}$