什麼是「閏周」?閏周就是大家耳熟能詳的「$19$年$7$閏」或是之後祖沖之曾採用過的「$391$年$144$閏」,其中「$19$年$7$閏」的「$19$年」的$19$稱為章歲,「$7$閏」的$7$稱為章閏。
在古代最初採用平氣平朔的曆法時,計算閏月的方式相對簡單。在本篇中主要要講解的是,在太初曆當時是如何使用「閏周」的方式來決定閏月的。
先把古書放一邊,了解一下基本的概念,太初曆使用的是$19$年$7$閏,也就是$235$個農曆月中有$7$個是閏月,數字的由來在之前【閏月是怎麼決定的 (1):概論】中有提及:
因為一個回歸年 $365.2422$ 天,若經過 $19$ 年,$ 365.2422 \times 19 = 6939.602$,其天數跟 $235 $ 個朔望月 $29.5306 \times 235 = 6939.691$ 的天數非常接近,而 $235 = 12 \times 19 + 7 $,也就是在這$19$年間,每年除了$12$個月之外,如果在$19$年間另外加入$7$個月的話,回歸年與朔望月便會形成一個很接近的循環,在古代曆法中,$19$ 便為一個「章」。
根據這幾個數字我們可以知道,如果把這$235$個農曆月平均分在$19$個回歸年間,一個回歸年共有$\frac{235}{19}=12\frac{7}{19}=12.368$個月左右,以一年正常$12$個月來看,每一年會多$\frac{7}{19}=0.368$個月左右,相當於每年會累積$\frac{7}{19}$個閏月,當這個月份累積超過$1$的時候,便是放置閏月的時候,再根據無中置閏的原則來看什麼時候是閏月。
這個累積閏月的基準點,跟之前一樣同樣是從「上元」開始累積,假設從上元開始經過了$2$個回歸年到了該年冬至,則共有 $\frac{235}{19} \times 2 = 24 \frac{14}{19}$個月,分數的部分即是閏月累積的月,因為還沒有超過$\frac{19}{19}$,目前還不用置閏,但可預期接下來的回歸年會再累積 $\frac{7}{19}$個閏月,分數的部分就會大於$1$了,所以我們知道接下來的回歸年會需要多個閏月。因為每年都是累積 $\frac{7}{19}$個閏月,當算到前一個回歸年累積的閏月超過 $\frac{12}{19}$個月時,接下來的一年累積的月份就會大於$1$,也就需要置閏了。
來看史書中的記載,太初曆的部分沒有仔細描述,不過由太初曆稍加改編的三統曆 (西元$5$年 - 西元$84$年) 寫得很清楚:
統母日法八十一。
閏法十九,因為章歲。
章月二百三十五。
月法二千三百九十二。
周天五十六萬二千一百二十。
章中二百二十八。
推天正,以章月乘人(入)統歲數,盈章歲得一,名曰積月,不盈者名曰閏餘。閏餘十二以上,歲有閏。
括號的部分是因為史書傳抄之後版本不同的關係。裡面很多的數字都在之前的不同文章中曾提及,在此就不再重覆解釋。
前段曾提過實際的$19$個回歸年的天數與$235$個朔望月的天數非常接近,但只是非常接近並不相等,而在早期使用閏周的曆法,如這裡的太初曆/三統曆,如果我們仔細看其使用的數字,回歸年的長度與朔望月的長度是設計成真的過了$19$個回歸年就是一個大循環。以曆書中的數字來看,太初曆/三統曆使用的回歸年長度是$\frac{562120}{1539}=365\frac{385}{1539}=365.2502$天,而朔望月的長度是$\frac{2392}{81}=29\frac{43}{81}=29.53086$天,$19$個回歸年的長度則是$\frac{562120}{1539} \times 19 = \frac{562120}{81}$天,$235$個朔望月也剛剛好是$\frac{2392}{81} \times 235 = \frac{562120}{81}$天,數字是設計好的,也因為這樣,在計算閏月的時候會更簡單一些。
以章月乘人統歲數,盈章歲得一,名曰積月,不盈者名曰閏餘。「人統歲數」即「上元積年」,這其實就是上述所說的,如果要算某年(上元積年共$N$年)是否要置閏,「章月乘以上元積年除以章歲」$235 \times N \div 19 = \frac{235}{19} \times N = 積月 + \frac{閏餘}{19}$。閏餘十二以上,歲有閏,如上述所說,如果分數的部分$\geq \frac{12}{19}$,則接下來的回歸年累積閏月一定會$\geq 1$,所以「閏餘十二以上,歲有閏」。
至於哪一個月份要置閏呢?
置閏的原則是無中氣的月份置閏,$19$個回歸年共有$12 \times 19=228$個中氣,又因為$19$個回歸年需置7個閏月,所以平均每個中氣會累積$\frac{7}{228}個閏月$,亦即每過一個朔望月,該月的中氣會再離該月的朔更遠一些,即$\frac{7}{228}$個月。
或是我們可以用另個方式來理解,假設最初合朔時刻與中氣點的時刻是相同的,經過一個朔望月也就是$29\frac{43}{81}=29.53086$天,但下一個中氣則是$365\frac{385}{1539} \times \frac{1}{12}= 30.43751 $天之後,所以每過一個朔望月,中氣會遠離朔$(365\frac{385}{1539} \times \frac{1}{12}-29\frac{43}{81})$天,即 \[ \begin{align*} \frac{562120}{1539}\times \frac{1}{12} -\frac{2392}{81} &= \frac{2392 \times 235}{81 \times 19 } \times \frac{1}{12}- \frac{2392}{81} \\ &= \frac{2392}{81} \times (\frac{235}{19 \times 12} - \frac{19 \times 12}{19 \times 12} )\\ &= \frac{2392}{81} \times \frac{235-228}{228}\\ &= \frac{2392}{81} \times \frac{7}{228} \end{align*} \], 也就是一個朔望月的長度乘以$\frac{7}{228}$,即上述說的$\frac{7}{228}$個月。
數字這麼漂亮當然是因為設計過的所以必然如此。如果要知道某年的第$k$個中氣是否會需要閏月,根據前段所述,我們知道算到該年冬至累積的「閏餘」的算法是$235 \times N \div 19 = \frac{235}{19} \times N = 積月 + \frac{閏餘}{19}$。事實上,這個$\frac{閏餘}{19}$的部分,跟前一篇文章的「歸餘之掛」的概念是非常類似的,不過因為最早的曆法有採取閏周,數字特別設計過,算起來不像前一篇【古代怎麼推算朔日 (1):概論】所述相對複雜。
也就是這裡的閏餘,其實就是該月朔到冬至的長度。那我們要計算的是第$k$個中氣,所以閏餘的部分要繼續累加到第$k$個中氣,也就是$\frac{閏餘}{19}+\frac{7}{228} \times k = \frac{閏餘\times 12}{19 \times 12} + \frac{7}{228} \times k = \frac{閏餘 \times 12 + 7k}{228}$,即經過了$k$個中氣之後,中氣點的時刻距離該月合朔時刻的長度 (以月為單位),那現在問題就很簡單了,如果這個數字小於$1$,那我們知道該中氣離朔的距離還不到一個朔望月的長度,如果再算到下一個月,這個值大於$1$的話,也就是如下圖所示: 其中有一個朔望月不含中氣,那就可以知道這裡要置閏了。範例可見下圖: 此時不含「中氣」的那個月便會是個閏月。再來看曆書是怎麼寫的:
「十二乘閏餘加七,除以章中」,「章中」就是一個章($19$個回歸年)含有的中氣數,也就是曆書中有寫出的$228$。這一段其實就是$\frac{閏餘 \times 12 + 7k}{228}$。
從冬至開始算起,如果有一個朔望月不含中氣,「則中至終閏」,就是要放置閏月的時候了。此時,那個在閏月後出現的中氣稱為「盈中氣」,因為兩個中氣相隔的長度僅$30$多天,所以這個「盈中氣」一定是出現在初一或初二,也就是「在朔若二日」。
最後,「則前月閏也」,不過如果真的照這個算法的話,其實會有一點小問題,譬如假設「穀雨」這個中氣的中氣點是在該月初一下午$1$點,該月合朔時刻是在初一下午$2$點,次月合朔時刻是在初一上午$7$點,「小滿」這個中氣的中氣點是在次月初一上午$8$點,如下圖所示:
也就是說,計算的結果會是該月朔至次月朔的這段期間內沒有「中氣」,但是因為「穀雨」的中氣點是在初一,所以在曆法的訂定上「該月」含有「穀雨」這個「中氣」,這樣就不能當閏月了。事實上從該月往回查閱通常一到兩個月可以找到無中氣的月份,也就是「則前月閏也」,這裡的「前月」不是「前一個月」,而是「之前的某個月」。所以用這種計算法,還不一定能真的直接確定閏月的位置,不過已經可以大致推算出來了。
這種計算法之後還有曆法曾使用過,但是大多數的曆書都是採用其他的算法,這部分我們在之後的文章還會繼續說明。
參考文獻:中國數理天文學。2008年。曲安京著。科學出版社。