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