寻找公历农历相同的日子

今年大家都在热炒1986年的公历和今年的一样,但是农历却不一样。因为公历每四年闰一天,每周有七天,所以大概是28年同一次,农历是19年同一次(解释在下面),理论上农历和西历要完全相同,大概需要19*28=532年。理论上公元1482年的西历和农历都和今年相同。实际上28年重复一次,也不是靠谱的,因为每年的日子实际上是个小数,公历四年一闰,但是百年反而不一定闰了,规则是如果年份可以被100除尽,还需要被400除尽才闰,这样导致公历也会相差,比如1902,1930,1958,1986,2014这几年日历相同,因为1900年不是闰年,导致1874年比2014年的元旦晚了一天。所以翻遍万年历,几乎不可能找到农历公历完全相同的日子。

2014/1/1 周三,农历十二月初一

1482/1/1 周四,农历十二月初三

950/1/1周四,农历十二月初四

418/1/1周一,农历十二月初八

另外,澄清一点,公历或者西历是太阳历,所以可以称作阳历,而农历不但根据月亮公转地球的周期,还要计算地球公转太阳的周期,所以准确的说,应该是阴阳历,所以大众普遍说的阴历其实是不准确的。

下面是解释为什么农历中十九年七闰及公历四年一闰的原因:

转载自

http://destiny.xfiles.to/ubbthreads/ubbthreads.php/topics/610122

除了你出生的那一年之外,大家有沒有遇過你西曆生辰的那一天又是你的農曆生辰呢?未遇過?這不出奇。因為根據曆法,西曆和農曆每隔 19 年才循環一次,如果你的年齡未滿 19 歲,自然不會遇上西曆生辰和農曆生辰在同一天出現的情況了。

可能大家會懷疑,為甚麼一定要等 19 年,西曆和農曆才會循環一次呢?為了明白 19 年循環的奧秘,我們先就要明瞭倒底「西曆」和「農曆」是怎樣制定出來的。首先,讓我們看看「西曆」:

我們現時所採用的「西曆」,顧名思義,就是一套從西方傳入的曆法系統。遠在古羅馬(甚至是更早的)時期,當時的歐洲人就已經將地球環繞太陽公轉一周所需的時間定為「一年」。通常我們都說 1 年有 365 日,即是說地球自轉了 365 次(日),它就會環繞太陽公轉 1 次(年)。如果地球自轉和公轉之比,剛好是一個整數,那麼一切就好辦了,但很可惜,經過仔細的天文觀測後發現,地球環繞太陽公轉所需的準確時間應為 365 日 5 小時 48 分 46 秒,即約 365.2422 日。故此,1 年有 365 日的想法,和地球公轉所需的時間,實際上有 0.2422 日的差別。

相信大家都知道,我們每隔 4 年就會在第 4 年中增加一日(即該年的 2 月 29 日),目的就是為了彌補上述的差別。注意:0.2422 ´ 4 = 0.9688,而 1 – 0.9688 = 0.0312 日,即約等於 44 分 56 秒。換句話說,使用了「四年一閏」的曆法,我們每隔 4 年就可以將上述的差別減少至 4 年才相差 44 分 56 秒,相信這是一個很合理的處理辦法了。

由於「西曆」是按照太陽和地球的關係而制定出來的,故此亦有人將「西曆」稱為「陽曆」。而為了方便後面的討論,我將地球公轉所需的時間(即 365.2422 日)稱為 1 個「太陽年」。

「農曆」就比較麻煩。有人稱「農曆」為「陰曆」,這是因為「農曆」主要是根據月球環繞地球公轉所需的時間而制定出來的。同樣,據觀測,月球環繞地球公轉一周所需的時間亦不是一個整數,而是等於 29 日 12 小時 44 分 2.8 秒,即約 29.5306 日。故此,在農曆裏面,1 個月有時會有 29 日,有時又會有 30 日。這要看每次月缺和月圓的時間才可定出一個月到底有多少日。通常,我們會將月圓的那一天定為每個月的第 15 日。同樣,為了方便後面的討論,我將月球環繞地球公轉所需的時間(即 29.5306 日)稱為 1 個「太陰月」。

將 1 個太陽年和 1 個太陰月相除,得 365.2422 ¸ 29.5306 = 12.368262,由此可知 1 個太陽年比 12 個太陰月多出 0.368262 個太陰月,約 10 日 21 小時。在這裏,問題來了:如果我們將 1 個農曆年定為 12 個月,那麼每過 1 年,我們就要提早差不多 11 日過新年了!這樣做,會令到我們使用農曆時出現很多混亂和困難的情況。例如:農夫發覺今年農曆 3 月 1 日天氣回暖,春天到了,適合播種,那麼到了第二年就要改於 3 月 12 日播種,第三年就要改於 3 月 23 日,如此類推。十年後就要在 7 月才開始耕種,二十年後就要到 11 月了!

為了解決上述的困難,農曆的曆法亦好像西曆「四年一閏」的制度一樣,在適當的時候就會在某一年之中加插多一個月(即閏月)來調節上述的差距。至於哪一年需要多加一個閏月,它的推算方法亦十分簡單,就是直接將每年多出來的時間(即 0.368262 個太陰月)累積地加起來,如果剛好超過 1 個太陰月,就可以在該年加插一個閏月了。

例如:第 1 年多了 0.368262 個太陰月,第 2 年就會多 0.736524 個太陰月,第 3 年將會多出 1.104786 個太陰月。這時剛好多於1個太陰月,所以我們就在第 3 年中加添一個閏月,因而得到農曆「三年一閏月」的規律。

但「三年一閏月」這個方法並不完美,原因是即使增加了 1 個閏月,3 年後仍和實際的太陽年相差了 0.104786 個太陰月,約 3 日 2 小時。這個差距依然很大。為了建造一個更好的曆法,我們可以繼續算下去,從而得到下表:

年數 累積差額(個太陰月)
3 1.104786
6 2.209572
8 2.946096
11 4.050882
14 5.155668
16 5.892192
19 6.996978

這樣,我們就計算出農曆年和太陽年之間一個更準確的關係了。從上表可以見到,當過了 8 年後,雖然差額祇有 2.946096 個太陰月,仍未足 3 個太陰月,但這個數字卻和 3 非常接近,故此,在農曆的曆法中,亦有「八年三閏月」的規定,即除了在第 3 和第 6 年分別插入 1 個閏月外,亦在第 8 年再加插多 1 個閏月。這時候,我們祇是隔了一年,就已經有多 1 個閏年了。類似地,到了第 16 年,就應該有 6 個閏月了。

注意:按「八年三閏月」的規定推算,8 年後太陽年和農曆年應該相差了 3 – 2.946096 = 0.053904 個太陰月,即約 1 日 14 小時。亦即是說,經過 8 年後,農曆年和太陽年其實祇有一至兩天的差距。大家是否記得你們 8 歲的那一年,你們的西曆生辰祇比農曆生辰早了 1 天或 2 天到臨呢?看過以上的計算,大家就應該明白,這個現象是基於甚麼原因而造成的了。

但一個更準確的結果,應該出現在第 19 年了。如果我們定「19 年 7 閏月」,那麼太陽年和農曆年就祇相差 7 – 6.996978 = 0.003022 個太陰月,即約祇有 2 小時!試想想:在長長 19 年的歲月中,若依照「19 年 7 閏月」的方法,最後兩種曆法其實祇相差 2 小時,這是一個多麼精確的結果!因此,每逢 19 或 19 倍歲數生辰的時候,西曆生辰和農曆生辰就有機會在同一天出現了。

例如:2003 年的 2 月 1 日是農曆年的正月初一。19 年後,即 2022 年的 2 月 1 日那天亦剛好是農曆正月初一!換句話說,在 2003 年 2 月 1 日出生的人,到了 2022 年 19 歲生辰那天,就會同日慶祝兩個曆法上的生辰了。(大家不妨查一查,你們 19 歲的那一年,西曆生辰和農曆生辰又是否重疊在同一天呢?)不過,如果我們倒數 19 年卻發現,1984 年的正月初一卻在 2 月 2 日,而並非 2 月 1 日!這又是甚麼原因呢?

其實理由也很簡單,這是因為「太陽年」和「太陰月」的日數都不是整數,而我們實際使用的西曆和農曆,每一年和每一個月的日數都必須是整數的。例如:西曆每逢第 4 年就會多加一日,而農曆的月份亦有長有短,有時會有 29 日,有時又會有 30 日,所以會令到部分的日子會有些微的出入,亦引致有些人即使他們到了 19 歲時,西曆生辰和農曆生辰仍然會有一天的差距。

例如:2000 年的 2 月 29 日是農曆的正月 25 日,3 月 1 日是正月 26 日。19 年後,即 2019 年,該年根本不是閏年,該年沒有 2 月 29 日,而該年的 3 月 1 日則變成農曆的正月 25 日。所以在 2000 年那幾天出生的人,到了 19 歲,亦沒有機會在同一天慶祝兩個生辰了。

就以我本人而言,在我 19 歲的那一年,農曆生辰比西曆生辰早了一天出現,即使到了 38 或 57 歲,這兩個生辰亦不會重疊在一起。這的確是一件令我感到遺憾的事情!

=======================

我测试了一下,如果说某年正好是西历的闰年,之后的的日子就被打乱了,西、农历会相差一天。