和榮筆記 - 中國農曆二百年算法及年曆
楊和榮, 第 4.01 版, 2007

中國農曆規則和日曆原理

日曆的基本原理

日曆是以天文學的三個不同的週期作為基礎的:

  • 天:地球自轉一周。
  • 月:月球圍繞地球運行一周。
  • 年:地球圍繞太陽運行一周。

如果以天作為單位,天文學的一年的平均時間是 365.2421896698 - 0.00000615359 T - 7.29E-10 T^2 + 2.64E-10 T^3 天,其中 T 的表達式為 (JD - 2451545.0)/36525,JD 是 Julian 天數。

如果以天作為單位,天文學的一月的平均時間是 29.5305888531 + 0.00000021621 T - 3.64E-10 T^2 天,其中 T 的表達式為 (JD - 2451545.0)/36525,JD 是 Julian 天數。

世界各國的日曆都是以天作為最小單位,但是年和月的算法卻各不相同,一共有 三大種類:

  • 陽曆:以天文年作為日曆的主要週期,例如:中國公曆。
  • 陰曆:以天文月作為日曆的主要週期,例如:伊斯蘭日曆。
  • 陰陽曆:以天文月和年作為日曆的主要週期,例如:中國農曆。

中國公曆規則

中國公曆也就是世界通用的 Gregorian 歷,它以年作為主要週期。為了和天文 年保持同步,公曆使用兩種不同天數的年:

  • 常年:365 天。
  • 閏年:366 天。

公曆年一般都是常年,只有少數年是閏年,由下面三條規則確定:

  • 一:如果年的數目是 4 的倍數,就是閏年。
  • 二:但是,如果年的數目是 100 的倍數,規則一就無效,仍是常年。
  • 三:但是,如果年的數目是 400 的倍數,規則二就無效,仍是閏年。

根據規則一,公曆每 4 年就比天文年多 0.03124 天:

4 Gregorian years: 3 * 365 + 366 = 1461 days 
4 tropical years:  4 * 365.2421896698 = 1460.9687586792 days

根據規則二,公曆每 100 年就比天文年少 0.21897 天:

100 Gregorian years: 76 * 365 + 24 * 366 = 36524 days 
100 tropical years:  100 * 365.2421896698 = 36524.21896698 days

根據規則三,公曆每 400 年就比天文年多 0.12413 天:

400 Gregorian years: 305 * 365 + 95 * 366 = 146097 days 
400 tropical years:  400 * 365.2421896698 = 146096.87586792 days

照此計算,公曆每 2500 年就比天文年多出 1 天。

公曆將一年份為十二個月。常年每月的天數分佈如下:

月份    1    2    3    4    5    6    7    8    9   10   11   12
天數   31   28   31   30   31   30   31   31   30   31   30   31

閏年的二月為 29 天。

公曆的月跟天文月毫無關係。

公曆還有一個跟年和月毫無關係的週期,叫作星期,每星期七天。公曆第一年的第 一天是星期一。

公曆 400 年共有 146097 天,正好是 7 的倍數,所以星期和年每 400 年循環一 次。

中國農曆規則

中國農曆是陰陽曆,同時跟天文月和天文年同步。

農曆月的天數是一個變數,有時是 29 天,有時是 30 天。

農曆每月的第一天是月亮全黑的日子。

農曆年由 24 個節氣來確定,節氣則由太陽的角度來確定。農曆的第一個節氣叫 雨水,定在太陽的角度為 330 度的日子。其餘的 23 個節氣分別定在太陽的角度 每變化 15 度的日子。下面的表格列出了 24 個節氣的名稱和定義:

命稱    角度    公曆日期      週期
立春     315     2月 4日
雨水     330     2月19日    29.8天
驚蟄     345     3月 6日
春分       0     3月21日    30.2天
清明      15     4月 5日
穀雨      30     4月20日    30.7天
立夏      45     5月 6日
夏滿      60     5月21日    31.2天
芒種      75     6月 6日
夏至      90     6月22日    31.4天
小暑     105     7月 7日
大暑     120     7月23日    31.4天
立秋     135     8月 8日
處暑     150     8月23日    31.1天
白露     165     9月 8日
秋分     180     9月23日    30.7天
寒露     195    10月 8日
霜降     210    10月24日    30.1天
立冬     225    11月 8日
小雪     240    11月22日    29.7天
大雪     255    12月 7日
冬至     270    12月22日    29.5天
小寒     285     1月 6日
大寒     300     1月20日    29.5天

24 個節氣中有 12 個是主節氣:雨水,春分,穀雨,夏滿,夏至,大暑,處暑, 秋分,霜降,小雪,冬至,大寒。

農曆年跟天文年相差較大。農曆常年有十二個農曆月,有 353,354,或者 355 天,比天文年少大約 11 天。為了跟天文年同步,每隔三個農曆常年左右,必需設 一閏年。閏年有十三個月,添加的這個月叫閏月。

農曆十二個月的名稱分別為:正月,二月,三月,四月,五月,六月,七月,八 月,九月,十月,冬月,臘月。

農曆閏年閏月的確定比較難,規則有兩條:

  • 一:冬至必須落在農曆冬月。如果落不上,臘月之前就要添上一個月,成為閏 年。
  • 二:如果是閏年,冬月後邊第一個不含主節氣的月份定為閏月。閏月使用前一 月份的名稱。

農曆年以 60 年為一週期,每年的名稱由 10 個天干的一個字和 12 個地支的一 個字排列而成。10 天干為:甲,乙,丙,丁,戊,己,庚,辛,壬,癸。12 地支 為:子,丑,寅,卯,辰,巳,午,未,申,酉,戌,亥。12 地支有 12 動物生肖 與其對應:鼠,牛,虎,兔,龍,蛇,馬,羊,猴,雞,狗,豬。

跟據歷史記載,農曆年已經經過了 78 個週期。今年,公曆 1999 年,是第 79 個週期的第 17 年,也就是農曆第 4696 年。

總結起來,中國農曆有下例 6 條規則:

  • 一:月全黑規則 - 月全黑的日子是農曆月的第一天。農曆月週期由此而定。
  • 二:24 節氣規則 - 24 節氣把天文年按太陽角度分成 24 等份,15 度一節氣。 這個規則確定了農曆和天文年的關係。
  • 三:冬至規則 - 冬至必須落在農曆冬月。如果落不上,臘月之前就要添上一個 月,成為閏年。
  • 四:閏月規則 - 如果是閏年,冬月後邊第一個不含主節氣的月份定為閏月。
  • 五:60 年週期 - 農曆年以 60 年為一週期。
  • 六:規則一和二的計算必須以中國南京紫金山天文台的觀察為準。
楊和榮,修改於2007
和榮筆記 - 中國農曆二百年算法及年曆 - 中國農曆規則和日曆原理