【#文档大全网# 导语】以下是®文档大全网的小编为您整理的《农历算法》,欢迎阅读!
中國農曆算法
週五, 07/09/2010 - 17:56 — admin 自由標籤: 算法 | 農曆算法 | 農曆 | 中華文化 | 知識庫
日曆的基本原理與算法
日曆是以天文學的三個不同的週期作為基礎的: 天:地球自轉一週。 月:月球圍繞地球運行一週。 年:地球圍繞太陽運行一週。
如果以天作為單位,天文學的一年的平均時間是 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 個週期。今年,公曆2010 年,是第 79 個週期的第 28 年,也就是農曆第 4707 年。 總結起來,中國農曆算法有下例 6 條規則:
月全黑規則 - 月全黑的日子是農曆月的第一天。農曆月週期由此而定。
24 節氣規則 - 24 節氣把天文年按太陽角度分成 24 等份,15 度一節氣。 這個規則確定了農曆和天文年的關係。
冬至規則 - 冬至必須落在農曆冬月。如果落不上,臘月之前就要添上一個 月,成為閏年。 閏月規則 - 如果是閏年,冬月後邊第一個不含主節氣的月份定為閏月。 60 年週期 - 農曆年以 60 年為一週期。
規則一和二的計算必須以中國南京紫金山天文台的觀察為準。
本文来源:https://www.wddqxz.cn/6dd03fd133d4b14e85246859.html