English 英文

農 曆 編 算 法 則


中國自公元1912年(民國元年)起採用公曆(即格里高里曆),但是傳統的農曆仍在民間使用,而且大多數傳統節日及公眾假期仍依照農曆,所以有必要對農曆有基本認識。本網頁旨在簡單介紹農曆的編算法則。坊間有不少談論曆法的通俗書籍可供有興趣的 讀者參閱,例如唐漢良先生的《历书百问百答》唐汉良


引 言

曆法是為了紀錄時間而制。在古代,有三個週期對人們日常生活很重要:晝夜交替的週期、月亮盈虧的週期和季節交替的週期。晝夜交替的平均時間是平太陽日。月亮盈虧的週期是朔望月,其平均值是29.5306日。季節交替的週期是回歸年(古代稱「歲實」),可由兩冬至或兩春分的平均時間以定,其值為365.2422日註一。「日」的概念緣自晝夜交替,「月」的概念緣自月亮盈虧,「年」或「歲」的概念緣自季節交替。

曆法以「日」為最短時間單位,怎樣編排月和年是曆法要解決的問題。上述三個週期彼此之間的比例都不能約化成簡單分數,這使編制曆法頗為困難。其中一個辦法是不理會朔望月,只考慮回歸年,年和月按特定規律編排,使一年的平均週期近似回歸年,這樣的曆法稱為「太陽曆」,簡稱「陽曆」,公曆就是一種陽曆。另一個辦法是不理會回歸年,年和月按特定的規律編排,使一個月的平均週期接近朔望月,這樣的曆法稱為「太陰曆」,簡稱「陰曆」,伊斯蘭曆就是一種陰曆。第三個辦法是要同時兼顧朔望月和回歸年,年和月按特定的規律編排,使一個月的平均週期接近朔望月,一年的平均週期接近回歸年,這樣的曆法稱為「陰陽合曆」,簡稱「陰陽曆」,農曆就是一種陰陽曆。

農曆規定把朔(即新月)落在的那一日定為某月初一。朔望月的平均值是29.5306日,所以農曆一個月可以有二十九日,稱為小月,也可以有三十日,稱為大月。月大月小是根據兩朔日之間的日數而定。回歸年的週期是365.2422日,是朔望月平均值的12.37倍,所以農曆一年一般有十二個月。為使農曆不偏離回歸年的週期,約每三年需有一個「閏月」,即一年有十三個月。

安置閏月以使農曆一年平均週期接近回歸年,即「置閏法則」,是農曆要解決的重要問題。歷代用過很多不同的置閏法則,有過五次重大的曆法改革,最近一次重大改革發生在清順治二年(公元1645年)。這裡只談現在通用農曆的法則,談法則之前須先闡釋對編算農曆來說重要的天文和曆法概念。


重 要 概 念

雖說日是曆法考慮的最短時間,但是要了解現代農曆的編算卻不得不提時分秒。


UT1, UTC, 中 國 標 準 時

世界時(UT)是根據地球自轉制定的時間。世界時有幾種不同版本,最常用的是UT1和協調世界時(UTC)。UT1是先根據地球上某一特定的經線註二相對於遙遠恆星的方位,再通過簡單變換得出符合平均太陽時的時間標準。地球自轉不均勻,所以UT1的時間也不均勻,這使UT1在應用上有所不便,於是人們創立協調世界時UTC來取代UT1。

協調世界時UTC是由國際原子時TAI及UT1而定。國際原子時是根據遍布世界上超過五十個國家、超過四百臺原子鐘的時刻經過數據處理而定的時刻,由TAI所定的每一秒鐘都是均勻的。UTC則定為TAI加上整數秒,使之與UT1的偏差不超過0.9秒。所以UTC的一秒和TAI的一秒時間間隔完全一樣,當UTC與UT1的時刻相差快要超過0.9秒時,閏秒便會加到UTC上,閏秒可正可負,正閏秒的一分鐘有六十一秒,負閏秒的一分鐘只有五十九秒。到目前(2018年10月)為止的閏秒全是正閏秒。閏秒法則從1972年實施,到目前(2018年10月)為止總共加了二十七個閏秒,上一次閏秒是在2016年12月31日23時59分60秒UTC。所以UTC在大多數的時候是均勻的,只是在加閏秒時會有一秒的突變,這些突變有時會造成混亂,所以有人自2005年起建議取消閏秒

區時定為與協調世界時UTC相差某個特定的時間,是世界各國採用的時間系統。現在中國各地採用的時間是東八區的區時,比UTC遲八小時,一般以UTC+8表示,也稱為北京時間或中國標準時。現在的農曆就是以UTC+8為時間基礎。


農 曆 的 紀 年、紀 月 和 紀 日 法

農曆現在以干支紀年。月份以正月、二月、三月……十二月表示,閏月取前一個月的月數在前面加上「閏」字,如閏三月、閏九月等。農曆每月第一日到第十日依次紀為初一、初二……初十,第十一日到第二十日依次紀為十一、十二……二十,第二十一日到第二十九日依次紀為二十一、二十二……二十九,或者簡紀為廿一、廿二……廿九,第三十日紀為三十。農曆也可用干支來紀日期,但月份一般不用干支。

眾所週知,以前中國常以帝王年號紀年,這種紀年方法到清朝滅亡後廢除。中華民國雖然用「民國」紀年,但民國紀的是公曆年而非農曆年,例如民國元年是指公元1912年,不是農曆壬子年。


朔是指月亮與太陽在同一方向的時刻,這說法過於籠統,現代天文學把朔定義為月球地心視黃經λM與太陽地心視黃經λS相等的時刻。與朔相關的概念有上弦、望和下弦。上弦是λM-λS=90°的時刻;望是λM-λS=180°的時刻;下弦是λM-λS=270°的時刻。籠統地說,上弦是月亮位於太陽以東90°的時候;望是月亮在太陽的相反方向的時候;下弦是月亮位於太陽以西90°的時候。

朔所在的日期稱為朔日。中國一直以來以午夜零時(古時稱子正)作為一天的開始,所以不論朔發生在某天的00:00:00或23:59:59.999,朔日仍視為同一天。值得注意的是現在農曆以UTC+8為時間基礎,例如朔曾發生在公元2010年12月5日UTC17:36,換成UTC+8區時,這次朔發生在2010年12月6日的01:36,所以這次朔日是在2010年12月6日。

農曆有一條古老法則一直沿用至今:朔日定為某月的初一日。所以2010年12月6日必是某月的初一日,下面要說的另一法則把此朔日定為十一月初一。下一個朔日發生在公元2011年1月4日,所以下一個月的初一是2011年1月4日。2010年12月6日和2011年1月4日之間有二十九日,由此推出這個十一月是小月。


中 氣 和 歲

二十四節氣網頁所述,中國古代用二十四節氣來表示太陽在黃道的位置。二十四節氣又分為十二個中氣和十二個節氣:自立春算起,單數的稱為節氣,雙數的稱為中氣。現代天文把中氣定義為太陽的地心視黃經達到30°的整數倍的時刻。

冬至是其中一個中氣,在農曆編算中相當重要。如六十干支網頁所述,冬至所在的月份定為建子。自漢武帝太初元年(即公元前104年)以來的歷代各朝一般以建寅為正月,所以建子是十一月,由此可知含冬至的月份必定是農曆十一月。例如2010年的冬至時刻是12月22日07:38(UTC+8),上面提到2010年12月6日和2011年1月4日皆是朔日,故此以2010年12月6日為初一的月份含有冬至,所以是該月是十一月。

二十四節氣網頁又指出「歲」與「年」在農曆是嚴格分開的。一歲是指從冬至到下一個冬至的時間。「歲」又可以用來指農曆中的陽曆年,歲首在冬至日,歲末在冬至日之前的一日。一歲可以有365日或366日。朔望月的平均值是29.5306日,由此可算出一歲只可以有十二或十三個月(包括第一個十一月,但不計第二個十一月)。為方便起見,這裡稱含十二個月的歲為「平歲」,稱含十三個月的歲為「閏歲」。農曆有一條重要法則:在閏歲的十三個月中,其中的一個月要定為閏月。

平歲的月份編排很簡單。如前所述,含冬至的那個月定為十一月,以後的十一個月依次定為十二月、正月、二月……十月。所以在平歲中正月是十一月(建子)後的第二個月,正月初一是冬至日後的第二個朔日。

閏歲的情況稍為複雜。一歲有十二個中氣,閏歲有十三個月,所以至少有一個月不含中氣,農曆規定冬至後第一個不含中氣的月份定為閏月。為方便起見,這裡且稱非閏月的月份為「平月」。在閏歲中含冬至的月份定為十一月,其餘十一個平月依次定為十二月、正月、二月……十月,閏月取前一個月的月數在前面加上「閏」字。在閏歲中正月是十一月以後的第二個平月。


現 代 農 曆 的 編 算 法 則

重要概念都說完了,現在要總結現代農曆的編算法則。下面列出的法則是根據中華人民共和國國家質量監督檢驗檢疫總局和中國國家標準化管理委員會聯合發佈的《農曆的編算和頒行》文件国标(編號GB/T 33661-2017),這文件是2017年5月由中國科學院紫金山天文臺擬定。以下用《國標》簡稱這文件。

除了法則一和法則五外,其他法則基本上是繼承古制。法則四和法則六其實就是「含冬至之月為建子,以建寅為正月」是另一寫法,這寫法取自《國標》,顯然是為了避談月建,卻不免使不熟識中國曆化者感到有點莫名其妙。法則五是順治二年(1645年)曆法改革時制定的,稍為修改了之前的「無中氣」置閏法則。法則一是1928年才加上的。

現在,法則一其實是說算農曆時應用UTC+8作為標準時。但是UTC在1960年制定,經過多次修改,到1972年才定下來。為了避免混亂,本網站所列的時間在1972年以前是UT1+8,從1972年起才用UTC+8。這其實幾乎沒有什麼關係,本網站列出的時間只列到分鐘,UT1和UTC在1960年和1971年間最多只有幾秒之差。

法則一到1929年起才實施,1929年前的時間以北京地方時為準,北京的經度是116°25',比東經120°標準時約早十四分鐘。如果朔或節氣時刻接近午夜零時,十四分鐘之差可以使朔日或節氣之日有一日之差。例如有朔發生在公元1916年2月4日0:05(UT1+8),按北京地方時這朔發生在2月4日午夜前,所以朔日是2月3日,這朔日正好是農曆丙辰年的正月初一,所以中國在1916年2月3日慶祝農曆新年,而不是2月4日。

從上述法則可制定編算農曆的方法,下面列出的方法可用來編定一歲內的所有農曆月,即從某年十一月到下一年十月的所有農曆月日。為方便起見,以下用NY表示正月初一在公曆Y年的農曆年,例如N1984指農曆甲子年,始於公元1984年2月2日,終於1985年2月19日。用WY表示落在公曆Y年的冬至日期,SY則表示從WY-1到WY之前一日的那段時間,即農曆的歲。

  1. 計算兩冬至的日期WY-1和WY

  2. 計算在WY-1或之前的第一個朔日M-1和在WY或之前的第一個朔日M11

  3. 求從M-1到M11之間的朔的數目LY(包括M-1但不包括M11),LY是最接近(M11 - M-1)/29.53的整數。

    1. 如果LY=12,則SY是平歲。計算M-1之後的十一個朔日,依次標以M0,M1,……,M10

    2. 如果LY=13,則SY是閏歲。計算M-1之後的十二個朔日及在SY內的所有中氣日期,然後找出最先出現不含中氣的月份,這個月份便是閏月。把平月的朔日日期依次標以M0,M1,……,M10,閏月的朔日日期則標以M*i,這裡i是閏月之前那個月的編號。

  4. M-1是農曆年NY-1的十一月初一,M0是十二月初一,M1是農曆年NY的正月初一,M2,……,M10是農曆年NY的二月初一,……,十月初一。如果有閏月,閏月的初一是M*i

上述程序定出從農曆年NY-1的十一月到農曆年NY十月的月日編排,如想推算農曆年NY的其餘月份,就要重複以上步驟來計算下一個歲SY+1的農曆月份。


農 曆 編 算 例 子


農 曆 法 則 之 疑 惑


《農 曆 的 編 算 和 頒 行》: 2017 年 國 家 標 準 (GB/T 33661-2017)

上面說到2017年5月中國科學院紫金山天文臺擬定了《農曆的編算和頒行》文件国标(編號GB/T 33661-2017),由中華人民共和國國家質量監督檢驗檢疫總局和中國國家標準化管理委員會聯合發佈。這《國標》文件的出現,應該和下面的歷史有關。

多年來,《萬年曆》在民間很流行。據中國科學院紫金山天文臺編的《新编万年历(修定本)》新编万年历和劉寶琳編的《100年袖珍干支月曆》劉寶琳所述,《萬年曆》是由清朝欽天監所編,正式書名是《御定萬年書》。第一部《萬年曆》在乾隆年間編成,年限是從清太祖天命九年(公元1624年,清朝入關前的第一個甲子年)到「乾隆一百年」(公元1835年)。乾隆五十二年(公元1787年)又編了一部《萬年曆》,把年限延長至「乾隆二百年」(公元1935年)。乾隆以後,凡新皇帝即位都會重編《萬年曆》,把年限延長至新皇帝年號的第二百年。所以《萬年曆》在嘉慶四年(公元1799年)、道光四年(公元1824年)、咸豐元年(公元1851年)、同治元年(公元1862年)、光緒二年(公元1876年)都有續修。最後一部《萬年曆》在宣統二年(公元1910年)編成,年限延長至「宣統二百年」(公元2108年)。

《萬年曆》雖然預推二百年的日曆,可是清政府每年頒行的曆書《大清時憲書》不根據《萬年曆》,《大清時憲書》有時會修正《萬年曆》的預推。例如嘉慶《萬年曆》預推嘉慶四十六年(實際是道光二十一年)十一月大、十二月小,十二月初一的日干支是辛巳(公元1842年1月12日),而《大清道光二十一年時憲書》改為十一月小、十二月大,十二月初一的日干支是庚辰(公元1842年1月11日);道光《萬年曆》預推道光三十六年(實際是咸豐六年)十月小、十一月大,十一月初一的日干支是甲寅(公元1856年11月27日),而《大清咸豐六年時憲書》改為十月大、十一月小,十一月初一的日干支是乙卯(公元1856年11月28日);同治《萬年曆》預推同治二十九年(實際是光緒十六年)六月小、七月大,七月初一的日干支是戊辰(公元1890年8月15日),而《大清光緒十六年時憲書》改為六月大、七月小,七月初一的日干支是己巳(公元1890年8月16日)。這樣的例子還有不少,說明《萬年曆》即使在清朝也不是正式採用。

公元1912年中華民國成立,宣佈改用公曆,但是農曆仍在民間流行。於是中國有兩個新年,民間對公曆新年反應冷淡,到了農曆新年卻非常熱鬧,當時有「民國的新年」和「國民的新年」說法。北洋政府頒行的《中華民國曆書》除了登載公曆外,仍然登載農曆。到了1929年,南京國民政府試圖禁止農曆在民間使用,國民政府頒行的《國民曆》不再登載農曆。但是人民已習慣了使用農曆,而且傳統習俗和節日都依據農曆,所以禁令難以實行。1934年,國民政府無奈表示「對於舊曆年關,除公務機關,民間習俗不宜過於干涉」,停止了強制廢除農曆。

由於政府不再頒行「官方農曆」,在民間流行的農曆有時會出現不同版本。例如1978年在廣州等地出現了兩種版本的農曆。根據紫金山天文臺編的農曆該年的八月初一在公曆9月3日(合朔時刻是00:09(UTC+8)),而從香港運到廣州等地的日曆根據宣統《萬年曆》載八月初一在公曆9月2日,這差異主要是由於宣統《萬年曆》計算的時間是根據北京的地方時,比UTC+8早約14分鐘,所以推算的合朔時刻在9月3日零時之前。在這一年,香港在9月16日過中秋節,而內地在9月17日過中秋節。從此以後,香港和內地都採用紫金山天文臺編的農曆。

《國標》的訂立,就是為了杜絕這些不同版本的農曆帶來的混亂。《國標》文件列出的農曆編算法則與順治二年(1645年)曆法改革所定的法則基本上一致,《國標》主要是用現代天文學嚴格定義曆算中涉及的天文學概念,比較專門的概念不便在文件中詳細說明,所以說要依照國際地球自轉和參考系服務規範(IERS Conventions)發佈的文件來詮釋那些專門概念。文件也規定朔和二十四節氣時刻計算精度應達到一秒(不計及編算時尚未正式公佈的閏秒),1912年至《國標》生效之日期(2017年9月1日)間的農曆日曆應參考紫金山天文臺編算的農曆。中國科學院會提前一年正式發佈農曆日曆的年度標準資料,所以農曆又有了「官方版」。《國標》主要目的是以現代天文學概念規範農曆的編算方法,訂立國家標準,杜絕錯誤的農曆經輾轉複製發行而給社會帶來混亂。

我認為訂立編算農曆國家標準是好事,但對其中的一秒計算精度要求感到困惑。編算曆法根本不需要把朔和節氣時間算到一秒,除非朔和節氣時間離午夜零時小於一秒,但這樣的情況絕少出現。要達到一秒精度要求,必須把太陽和月球的位置計算得很準確。太陽的平黃經在一回歸年增加360°,所以在一秒鐘的時間,太陽的視黃經平均來說增加360°/(365.2422×86400)=0.04"(即0.04弧秒)。所以要把二十四節氣的時刻算準到一秒,必須把太陽的視黃經算準到0.04"。同理,要把合朔時刻算準到一秒,月球的視黃經必須計算準到360°/(29.5306×86400)=0.5"。世界上預先編算的太陽和月球位置曆表,或許要到1970年代末才達到這樣的精度。另外,必須嚴格定義「視黃經」來配合這個精度要求,所以《國標》明確規定必須按國際地球自轉和參考系服務規範(IERS Conventions)規定的模型來計算太陽和月球的視位置。

如前述,高精度的合朔和節氣時刻只有在少數情況下,當這些時刻接近午夜零時時才有必要。但是這些情況要在數十年後才會出現,而且現在對這些情況暫時無能為力,原因是現在不能把數十年後的合朔和節氣的UTC+8時刻很準確地算出。現代的準確曆表大多以質心力學時(barycentric dynamical time)TDB為時間標準。TDB是用廣義相對論來定義的均勻時間,用來計算月球和太陽系行星的位置。編算農曆要用UTC+8時間,所以必須把TDB轉化為UTC+8。這可先把TDB轉化為地球時(terrestrial time)TT,然後再把TT轉化為UTC+8。TDB與TT的轉換可用廣義相對論的變換公式計算,但是TDB與TT在數千年來的差異不大於二毫秒(即0.002秒),所以在編算曆法時可省略這一步,即把TDB與TT視為等同。而TT與國際原子時TAI有簡單的關係: TT=TAI+32.184秒,上面說過TAI和UTC相差整數秒,確實的秒差涉及到究竟有多少閏秒加到UTC上。所以要把TDB化為UTC+8,就要知道閏秒的數目,但是地球自轉不均勻,數十年後的閏秒數目難以準確預測。所以雖然現代的高精度曆表能把數十年後的合朔和節氣的TDB時刻計算得很準,但是其對應的UTC+8時刻還是不能準確算出。因此我們對數十年後接近午夜零時的合朔和二十四節氣日期暫時無能為力。面對這些少數的合朔和節氣,我認為最佳的處理方法是承認現在無法斷定這些合朔和節氣的日期,確實日期與現在推算的日期或會有一日之差。本網站就是用這樣的方法處理這些少數的合朔和節氣。

合朔和節氣時刻接近午夜零時的情況以前當然也曾發生,以前對合朔和節氣的定義沒有現在那麼精確,計算方法也沒有現在那麼準,而且在1929年以前的時刻也不用東經120°的標準時。所以用現在的方法計算以前的合朔和節氣日期有時與當時的計算結果不一致,而算出的農曆也可能與以前通行的日曆不一致。遇到這些情況時,應以當時政府頒行的日曆為準。本網站所列的月相和節氣時刻都是根據我的計算,但有幾個初一的日期改了以符合當時頒行的曆書,這幾個情況在相關的網頁裡用紅色字形說明。至於二十四節氣的日期遇到與當時的曆書有不一致時也用紅色字形註明。


本 網 站 的 農 曆 編 算

本網站的農曆根據《農曆的編算和頒行》文件国标(編號GB/T 33661-2017)規定的方法編算,計算結果與中國科學院紫金山天文臺出版的書籍裡的農曆資料核對過。太陽和月球的地心位置用美國噴射推進實驗室(Jet Propulsion Laboratory)編制的DE431DE曆表計算。噴射推進實驗室的DE系列曆表用數值積分方法計算太陽系行星及月球的位置,是目前世界上最準確的曆表之一,計算時考慮到343個質量比較大的小行星對大行星的重力攝動。太陽系各天體的運動計及廣義相對論對牛頓力學的修正,廣義相對論的效應以參數化後牛頓n體度規推出的動力學方程描述。此外還計及地球、月球、及太陽因偏離完美球狀而引起的額外加速度。用DE431曆表計算出的地心位置經過光行時及光行差的修正後,得到的是國際天球參考系(ICRS)的地心座標視位置,再經過參考架偏差矩陣(frame bias matrix)以及歲差和章動的變換後算出地心視位置相對於瞬時真黃道及真春分點的黃道座標。歲差和章動是根據國際天文聯會推薦的IAU2006/2000A歲差和章動模型計算,計算公式取自國際地球自轉和參考系服務規範(IERS Conventions)在2010年發佈的文件IERS10和美國海軍天文臺在2005年發佈的文件Kaplan05。月相和節氣的TDB時刻用牛顿-拉弗森(Newton-Raphson)求根法計算,所得的TDB時刻再轉換成UTC+8(1972年及以後)或UT1+8(1972年前)時刻。換算過程中省略了TDB到TT的轉換,因為兩者差異小於0.002秒,可視為等同。TT到UT1的轉換公式取自Espenak和Meeus的近似公式,1972年到現在的TT-UTC根據正式公佈的閏秒計算,2020年後的TT-UTC根據Espenak和Meeus的公式預推,其實他們的公式是用來預推TT-UT1的,但是也可用來作TT-UTC的近似值,因為根據規定UTC和UT1相差不會超過0.9秒。我已把本網站編算農曆時詳細的數學計算寫在這pdf文件供有興趣的讀者參閱。

本網站的農曆編算年限是1841年到2200年,1841年到2050年的計算結果與兩本曆書比對過。一本是中國科學院紫金山天文臺編的《新编万年历(修定本)》新编万年历,另一本是劉寶琳編的《100年袖珍干支月曆》劉寶琳。《100年袖珍干支月曆》的編者劉寶琳曾是紫金山天文臺的研究員,編該書時已從事曆算工作近四十年,並曾以紫金山天文臺的名義出版了多種曆書,《新编万年历》也是由他主編的。《新编万年历》的年限是從1840年(道光二十年)到2050年,《100年袖珍干支月曆》的年限是從1911年到2010年。兩本書的農曆資料是一致的,只是《100年袖珍干支月曆》還把朔、望和二十四節氣的時刻列出到分鐘。兩本書中1912年前的農曆根據北京故宮博物院收藏的《大清時憲書》,1912年到1928年的農曆根據北洋政府教育部中央觀象臺編的《中華民國曆書》,1929年到1948年的農曆根據中華民國中央研究院天文研究所編的《國民曆》註三,1949年及以後的農曆則根據紫金山天文臺編算的農曆。

本網站編算的農曆與兩本書所載的資料大多一致,遇到農曆初一的日期不一致時就以兩本書的資料為準。不一致的情況有七次而且都是發生在1929年以前。在這些不一致的情況,合朔的時刻仍然用我的計算,只是農曆初一的日期改了,並用紅色字形說明。除了朔日的日期有差異外,二十四節氣的日期有時也有差異。除了一項外,所有的差異也都是發生在1929年以前。下表把所有的合朔和二十四節氣的日期差異列出來。


農 曆 年 農 曆 月 初 一 的 公 曆 日 期* 合 朔 時 刻 (UT1+8)
N1841 辛 丑 年 十二月 1842年1月11日 1842年1月12日 00:15
N1862 辛 酉 年 十二月 1863年1月19日 1863年1月20日 00:02
N1880 庚 辰 年 十 月 1880年11月3日 1880年11月2日 23:55
N1896 丙 申 年 正 月 1896年2月13日 1896年2月14日 00:13
N1914 癸 丑 年 十 月 1914年11月17日 1914年11月18日 00:02
N1916 丙 辰 年 正 月 1916年2月3日 1916年2月4日 00:05
N1920 庚 申 年 十 月 1920年11月10日 1920年11月11日 00:05

* 初一的日期根據當時政府頒行的日曆。


公 曆 年 節 氣 本網站計算的節氣時刻(UT1+8) 當時政府頒行的日曆
1844 芒種 6月5日 23:49 6月6日
1846 小雪 11月22日 23:24 11月23日
1848 冬至 12月21日 23:59:37 12月22日
1849 立夏 5月6日 00:06 5月5日
1850 寒露 10月8日 23:38 10月9日
1851 秋分 9月23日 23:50 9月24日
1851 大雪 12月7日 23:44 12月8日
1855 穀雨 4月21日 00:11 4月20日
1862 霜降 10月23日 23:45 10月24日
1862 立冬 11月7日 23:23 11月8日
1864 大暑 7月22日 23:50 7月23日
1866 霜降 10月23日 23:14 10月24日
1867 小暑 7月7日 23:51 7月8日
1867 處暑 8月23日 23:53 8月24日
1879 小寒 1月5日 23:51 1月6日
1879 小雪 11月22日 23:30 11月23日
1883 寒露 10月8日 23:18 10月9日
1884 秋分 9月22日 23:21 9月23日
1884 大雪 12月6日 23:50 12月7日
1886 立秋 8月7日 23:44 8月8日
1895 霜降 10月23日 23:47 10月24日
1895 立冬 11月7日 23:26 11月8日
1898 白露 9月7日 23:39 9月8日
1899 夏至 6月21日 23:46 6月22日
1899 霜降 10月23日 23:07 10月24日
1912 小雪 11月22日 23:48 11月23日 00:39
1913 秋分 9月23日 23:53 9月24日 00:48
1917 大雪 12月8日 00:01 12月7日 23:47
1927 白露 9月9日 00:05 9月8日 23:52
1928 夏至 6月22日 00:06 6月21日 23:53
1979 大寒 1月20日 23:59:54 1月21日 00:00

1914年以前的差異主要是因為當時的計算方法根據乾隆七年(1742年)編成的《曆象考成後編》,《曆象考成後編》成書時還算先進,現在看來是很不準的。用《曆象考成後編》推算的時刻可以有幾分鐘至幾十多分鐘的誤差。自1914年起曆法計算採用國外新方法,但是仍用北京地方時,這就是1914年、1916年、1917年、1920年、1927年和1928年出現日期差異的原因。至於1979年的情況比較特殊,我據DE431曆表推算的大寒時刻在1月21日零時之前六秒,《100年袖珍干支月曆》載的時刻是00:00,可見大寒時刻非常接近午夜零時,要用很準確的曆表才能把確實日期算出。1984年以前,世界上大多數的天文年曆(包括紫金山天文臺編的《中国天文年历 》)是根據1895年美國天文學家西蒙‧紐康(Simon Newcomb)編的太陽表計算太陽位置,紐康太陽表的精確度約為1",所以用其計算的二十四節氣時刻可以有25秒的誤差。《100年袖珍干支月曆》的節氣計算可能也是用類似精度的太陽曆表計算,因為書中所列的節氣時刻和我推算的時刻常有一分鐘偏差,而這樣的偏差不見於現在香港天文臺網站列出的節氣時刻,其實這也不奇怪,因為香港天文臺的節氣時刻是根據英國皇家航海曆書局及美國海軍天文臺提供的天文數據計算,而那些天文數據自2015年起取自DE430曆表,DE430和DE431在近一百年的差異十分微少。不管怎樣,這些二十四節氣的日期雖然相差一天,但是並沒有影響農曆月份的編排,我在本網站相關的網頁用紅色字形指出了這些差異。

上面說過數十年後的合朔和二十四節氣的UTC+8時刻現在暫時不能準確計算,有若干合朔和節氣的預推時刻接近午夜零時,所以確實日期可能和預推日期有一日之差。合朔日期可能有一日之差即意味著預推的農曆初一日可能有一日之差。至於二十四節氣的情況比較簡單,因為節氣有一日之差完全不影響農曆月份的編排,中氣有一日之差也大多無礙,除非初一日恰好發生在這個中氣的一兩日內,這種特殊情況如果出現或會影響閏月及其他月份次序。我的計算顯示這種特殊情況直到2200年也不會發生。下表列出2050年後預推時刻接近午夜零時的合朔和二十四節氣,因此確實日期或會和預推日期有一日之差。這些情況在本網站的相關網頁用紅色字形註明。


公 曆 年 合朔的預推時刻(UTC+8)
2057 9月29日 00:00:04.5
2089 9月4日 23:57:36
2097 8月7日 23:59:41
2133 9月28日 23:59
2172 10月17日 23:57
2192 5月12日 00:03

公 曆 年 節 氣 預 推 時 刻 (UTC+8)
2051 春 分 3月20日 23:59
2083 立 春 2月3日 23:58
2084 春 分 3月19日 23:59
2084 芒 種 6月5日 00:02
2135 寒 露 10月9日 00:02
2150 春 分 3月21日 00:01
2168 夏 至 6月21日 00:02
2185 大 寒 1月20日 00:01
2186 立 春 2月3日 23:57
2191 大 暑 7月23日 00:00:03
2199 清 明 4月4日 23:59

聯 絡

如有任何擬問或發現本網站的資料有誤,請電郵yuktungliu[AT]gmail[dot]com查詢或指正。


參 考 文 獻