數學資料庫 – 數學趣趣地 – 數學文章

每年翻開月曆時,總會發現農曆和西曆的對照年年不同。可是只要多看幾年的月曆,便會發現每隔 19 年,農曆和西曆的對照便會大致相同。

在 1984 年年尾至 1985 年年初出生的朋友,最近 19 歲生日時有沒有發現自己的農曆生日和西曆生日相差甚遠呢?我們探討這個問題的原因前,必須先知道兩種曆法的計算方式。

現時為世界普遍採用的西曆,正確名稱是「儒略曆」(Gregorian calendar)。這套曆法的雛形由古羅馬凱撒大帝 (Julius Caesar) 在公元前 46 年修訂當時的曆法制定,後來再在 1576 年由羅馬教皇再修訂成現代的曆法(因為 1576 年的修訂原因和本題目無關,這裏略過不談)。因為這套曆法的根據是地球環繞太陽公轉的周期(365.2422天),所以它可被歸類為「陽曆」(solar calendar)。曆法內容如下:

1. 閏年

當年份數字是 4 的倍數時,該年則為「閏年」,否則為「平年」;但若年份為 100 的倍數而不是 400 的倍數,該年則改回「平年」。

2. 每月的日數

平年每年共分為 365 天,閏年則為 366 天,這三百幾天約略平均分成 12 個月,其中 1、3、5、7、8、10 和 12 月有 31 天,4、6、9 和 11 月有 30 天,平年的 2 月有 28 天,閏年的 2 月則有 29 天。(這種分配方法有其歷史原因,但這裏不作深究。)

簡單來說,每 400 年共有 97 個閏年,即 365 ´ 400 + 97 = 146097 天,這和 400 年共有 365.2422 ´ 400 = 146096.88 天 只差 0.12 天,誤差很小。因此,它可以準確地量度地球公轉的活動。

我們指的農曆是中國農曆,應始用於中國夏朝。商朝時農曆已有相當準確的曆法計算規則,現代的農曆大部分規則亦建基於此。農曆的計算依據比儒略曆複雜。平日我們說它是陰曆 (lunar calendar),其實是一種誤解。它既考慮地球的公轉周期,亦考慮月亮環繞地球公轉的周期,因此它被稱為「陰陽曆」(lunisolar calendar)。實際上真正的陰曆不多,其中回教曆 (Islamic calendar) 即為陰曆。[1, 2]

1. 初一的位置

計算農曆時,我們首先計算每月的初一是在哪一天。眾所周知,初一時月球亮度最小,是新月開始的日子。因此,我們會將新月開始的一天定為初一(月份序號尚未確定)1。因為月亮的盈虧周期是 29.5306 日,所以農曆每個月都是 29 或 30 日。

2. 十一月的位置

決定月份的序號前,我們應先知道節氣和「歲」的概念。

我們將地球公轉軌道分為 24 份,每份為 15 度,代表一個節氣。當地球到達進入某份的軌道時,當天便屬於該份的節氣。二十四個節氣順序為

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

表 1:二十四節氣表

其中第偶數個的節氣(如雨水、春分、……、冬至和大寒)都稱為「中氣」。

每個「歲」是由十一月開始,翌年十一月前的一個月結束。根據規定,冬至一定要在每個「歲」的首月。因此,我們會將包含冬至的那個月定為十一月。

為甚麼人們以十一月而不是正月為計算基礎,又以冬至為算法的準則呢?首先,對位於北半球的中國來說,冬至是全年影子最長的一天2。因此,古人只需利用垂直的竹竿測影便可得知哪天是冬至。至於以十一月為計算基礎則為古代的傳統。這種曆法安排始於夏朝,幾經改動後在西漢再度採用,並沿用至今3。另外,這亦和中國農民生活習慣有關。冬至是農民開始休息的日子。從冬至至立春,人們一般都會與家人準備團年,不會耕作,讓農地休養生息。因此,冬至對農民來說是重要的時間標記。這就是計算曆法的人以冬至作為算法準則的原因。「歲」的重要性亦可從中國古代計算年齡的方法得知。中國古代的人數算年份時,往往會以歲4為數算的基礎。例如,人們計算自己的出生年份時,他們會考慮自己是在哪一「歲」出生,而不是哪一「年」出生。

3. 節氣和閏月

其他的月份序號怎樣決定呢?在此之前,我們會先決定閏月。閏月的規則如下:

1. 如果某個歲有 13 個月,則該歲為閏歲。

2. 如果某歲不是閏歲,月份則按著十一月、十二月、一月、二月、……、十月順序編號。

3. 如果某歲是閏歲,我們便要將其中一個月定為閏月。決定閏月的規則和節氣有關:一年有 12 個中氣。因此,13 個月裏必定有最少一個月沒有中氣5。閏歲中第一個沒有中氣的月份是該歲的閏月。除了閏月的月份序號和前一個月一樣外,其他月份都按著十一月、十二月、一月、二月、……、十月順序編號。

由於 19 年共有 365.2422 ´ 19 = 6936.6018 日,而 19 ´ 12 + 7 = 235 個農曆月則有 235 ´ 29.5306 = 6936.6910 日,兩者僅相差約 0.08 天。故若 19 年置 7 閏,農曆便可以頗準確地描述地球公轉的情況。這便是人們常說「十九年七閏」的原因。這亦解釋了為何農曆和儒略曆的日期對照會每 19 年便「循環」一次6[1,4]。

按著上述的周期推斷,1984/1985 年的農曆對照應該和 2003/2004 年的差不多吧。可是它們的閏月位置卻不相同。問題在哪裏呢?原來問題是在 1984/85 年,不在 2003/04 年。1984 年(甲子)有閏十月,1985 年不閏;可是 2003 年卻沒有閏年,2004 年則有閏二月。為甚麼呢?這正和那些年份是否閏歲有關。我們先看看 1984、1985、2003 和 2004 部分節氣和新月的資料[3, 5]。

1984/85 年 2003/04 年
節令 日期及時間 備註 節令 日期及時間 備註
小雪 22/11/1984 (11:11) 十月 小雪 23/11/2003 (01:31) 十月
新月 23/11/1984 (06:58) 此月沒有中氣,故這是閏十月 新月 24/11/2003 (07:00) 此月有冬至,故這是十一月
大雪 07/12/1984 (06:24) 大雪 07/12/2003 (20:55)
新月 22/12/1984 (19:47) 此月有冬至,故這是十一月 冬至 22/12/2003 (14:44)
冬至 22/12/1984 (23:06) 新月 23/12/2003 (17:44) 十二月
小寒 05/01/1985 (17:33) 小寒 06/01/2004 (08:04)
大寒 20/01/1985 (10:44) 大寒 21/01/2004 (01:22)
新月 21/01/1985 (10:29) 十二月 新月 22/01/2004 (05:06) 一月
立春 04/02/1985 (05:15) 立春 04/02/2004 (19:46)
雨水 19/02/1985 (00:14) 雨水 19/02/2004 (15:39)
新月 20/02/1985 (02:43) 正月 新月 20/02/2004 (17:18) 二月
驚蟄 05/03/1985 (23:25) 驚蟄 05/03/2004 (13:56)
新月 21/03/1985 (19:59) 二月 春分 20/03/2004 (14:52)
春分 21/03/1985 (00:21) 新月 21/03/2004 (06:42) 此月沒有中氣,故這是閏二月
清明 05/04/1985 (04:28) 清明 04/04/2004 (18:44)
新月 20/04/1985 (13:22) 三月 新月 19/04/2004 (21:22) 三月
穀雨 20/04/1985 (11:34) 穀雨 20/04/2004 (02:11)

表 2:1984/85 及 2003/04 年的部分節氣及新月資料(綠色的是中氣,藍色的不是中氣)

從表 2 得知,1984 年的冬至當天剛好是新月開始,所以 1984 年 12 月 22 日開始的那個月是十一月。但 2003 年的冬至卻在新月開始前一天。因此,2003 年 12 月 23 日開始的那個月是十二月。正因這個小差別,1984 年的歲有 13 個月,是閏歲;但 2003 年的歲卻只有 12 個月,不是閏歲。因此,1984 年便有閏十月,2003 年沒有閏月。相似地,1985 年的歲有 12 個月但 2004 年的歲卻有 13 個,所以 1985 年沒有閏月,2004 年有閏二月。

這個異常的閏月情況令 1984 年 11 月 23 日至 1985 年 4 月 19 日之間出生的人的 19 歲農曆生日和儒略曆生日相差甚遠,而且這兩個生日在未來一千年都不可能重疊。以三個在 1984 和 1985 年出生的人為例子,他們幾次生日的資料如下:

儒略曆生日時的農曆對照 1984 年 10 月 14 日
(農曆為九月二十日)
1985 年 3 月 14 日
(農曆為正月二十三日)
1985 年 9 月 10 日
(農曆為七月二十六日)
19 歲生日 九月十九日 二月二十四日 七月二十六日
38 歲生日 九月十九日 二月二十三日 七月二十六日
57 歲生日 九月二十日 二月二十三日 七月二十六日
76 歲生日 九月二十一日 二月二十三日 七月二十七日
95 歲生日 九月二十日 二月二十三日 七月二十七日

表 3:三人的儒略曆生日的農曆對照

從表 3 可見,不在上述時段出生的人在 19、38、57、76 和 95 歲的生日中總有幾次是儒略曆生日及農曆生日重疊。可是 1985 年 3 月 14 日出生的人卻一次也沒有,這就是閏月不每 19 年出現的異常情況所致。事實上,這種異常情況並不常見。上一次發生這種情況是 1889/90 年,而下一次則在 2185/86 年(1890 年和 2186 年都有閏二月)。[1]

[1] Helmer Aslaksen, The Mathematics of the Chinese Calendar, 2000

[2] Helmer Aslaksen, An Introduction to the Chinese Calendar, 2000

[3] 鄧匡哲、渡森、觀龍、黎逢華合編,標準中西對照萬年曆,玄學出版社

[4] KUAN Shau Hong and TENG Keat Huat, The Chinese Calendar of The Later Han Period,1999