-
Notifications
You must be signed in to change notification settings - Fork 45
/
examples_simp.html
executable file
·1 lines (1 loc) · 15.9 KB
/
examples_simp.html
1
<!DOCTYPE html><html lang="zh"><meta name="keywords" content="农历, 法则, 农历编算例子, 2033年的问题, 伪闰月, 双中气"><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1"><head><title>农历编算例子</title><link rel="stylesheet" href="calendar_chinese_min.css"><style>body{counter-reset:subsec-counter}subsect::before{counter-increment:subsec-counter 1;content:counter(subsec-counter,lower-roman) ". "}</style><script src="header_min.js"></script><base href="https://ytliu0.github.io/ChineseCalendar/"><script async src="https://www.googletagmanager.com/gtag/js?id=G-SN0QJRDXXT"></script><script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-SN0QJRDXXT")</script></head><body onload='header(2,"","examples")'><div id="wrapper0"><div id="menu"></div><div id="language"></div><p>返回<a href="rules_simp.html#examples" style="background-color:pink">农历编算法则</a></p><br><h1>农 历 编 算 例 子</h1><p>初稿: 2018年10月</p><br><p>这里用两个例子展示农历编算方法,最后会探讨农历年N<sub>2033</sub>(癸丑年)的问题。</p><p>为方便起见,这里会用朔望月数(lunation number)来标纪朔。朔望月数由布朗于1933年所创,他把1923年的第一个朔(1923年1月17日2:41 UT1)的朔望月数定为1,此后的朔的朔望月数按时间次序定为2、3、4等等。已知1923年1月17日UT正午的儒略日数是2423437,由此可推断某个朔的朔望月数是最接近1+(JD-2423437)/29.5306的整数,其中JD是这个朔的儒略日数。</p><br><subsect id="ex1">例 一: 推 算 N<sub>2017</sub> (丁 酉 年) 的 所 有 农 历 月</subsect><p>根据英国皇家航海历书局及美国海军天文台编的 《2016年天象》,2016年的冬至是在12月21日UTC10:44,亦即12月21日18:44(UTC+8),所以2016年的冬至日是W<sub>2016</sub>=2016年12月21日。 又据《2017年天象》,2017年的冬至是在12月21日UTC16:28,亦即12月22日00:28(UTC+8),所以W<sub>2017</sub>=2017年12月22日。2016年和2017年的所有合朔时刻也可从两书查得,只是要把所有时刻从UTC转化为UTC+8。从两书的数据可得M<sub>-1</sub>=2016年11月29日、M<sub>11</sub>=2017年12月18日。由此算出<br>M<sub>11</sub>-M<sub>-1</sub>=384日,所以L=13,意味着S<sub>2017</sub>是闰岁。要找出闰月,需要知道中气的时刻,但那两本书只列出春分、秋分、夏至和冬至的时刻,其他中气时刻须自己推算。我已经把这些时间算好了,可从<a href="sunMoon_simp.html?y=2017">气朔时刻网页</a>查看,该网页列出的时间全是UTC+8,不用转换。</p><p>下表列出朔和中气日期,朔用L然后加上朔望月数来纪。</p><table><tr><th>朔</th><th>中 气</th></tr><tr><td>L1162: 2016年11月29日</td><td></td></tr><tr><td></td><td>冬至: 2016年12月21日</td></tr><tr><td>L1163: 2016年12月29日</td><td></td></tr><tr><td></td><td>大寒: 2017年1月20日</td></tr><tr><td>L1164: 2017年1月28日</td><td></td></tr><tr><td></td><td>雨水: 2017年2月18日</td></tr><tr><td>L1165: 2017年2月26日</td><td></td></tr><tr><td></td><td>春分: 2017年3月20日</td></tr><tr><td>L1166: 2017年3月28日</td><td></td></tr><tr><td></td><td>谷雨: 2017年4月20日</td></tr><tr><td>L1167: 2017年4月26日</td><td></td></tr><tr><td></td><td>小满: 2017年5月21日</td></tr><tr><td>L1168: 2017年5月26日</td><td></td></tr><tr><td></td><td>夏至: 2017年6月21日</td></tr><tr><td>L1169: 2017年6月24日</td><td></td></tr><tr><td></td><td>大暑: 2017年7月22日</td></tr><tr><td>L1170: 2017年7月23日</td><td></td></tr><tr><td>L1171: 2017年8月22日</td><td></td></tr><tr><td></td><td>处暑: 2017年8月23日</td></tr><tr><td>L1172: 2017年9月20日</td><td></td></tr><tr><td></td><td>秋分: 2017年9月23日</td></tr><tr><td>L1173: 2017年10月20日</td><td></td></tr><tr><td></td><td>霜降: 2017年10月23日</td></tr><tr><td>L1174: 2017年11月18日</td><td></td></tr><tr><td></td><td>小雪: 2017年11月22日</td></tr><tr><td>L1175: 2017年12月18日</td><td></td></tr><tr><td></td><td>冬至: 2017年12月22日</td></tr></table><p>从表中可见,L1170朔对应的农历月是唯一一个月份不含中气,是闰月。由此得出M<sub>0</sub>=2016年12月29日、M<sub>1</sub>=2017年1月28日、……、M<sub>6</sub>=2017年6月24日、M<sup>*</sup><sub>6</sub>=2017年7月23日、M<sub>7</sub>=2017年8月22日、……、M<sub>11</sub>=2017年12月18日。闰月在六月之后的那个月,是闰六月。要推算丁酉年十一月后的月份,原则上应重复以上步骤计算下一岁(S<sub>2018</sub>)的农历月,但也可以省略,原因是我们知道农历有闰月的那一年有十三个月,现在头十二个月已定,而闰月是闰六月,所以最后一个月必定是十二月,初一是M<sub>11</sub>之后的朔日,下一年的正月初一必是M<sub>11</sub>之后的第二个朔日。2018年的朔日可从《2018年天象》查得。下表列出丁酉年各月的编排。</p><table><tr><th>农 历 月</th><th>初 一 日 期</th><th>日 数</th></tr><tr><td>正月</td><td>2017年1月28日</td><td>29</td></tr><tr><td>二月</td><td>2017年2月26日</td><td>30</td></tr><tr><td>三月</td><td>2017年3月28日</td><td>29</td></tr><tr><td>四月</td><td>2017年4月26日</td><td>30</td></tr><tr><td>五月</td><td>2017年5月26日</td><td>29</td></tr><tr><td>六月</td><td>2017年6月24日</td><td>29</td></tr><tr><td>闰六月</td><td>2017年7月23日</td><td>30</td></tr><tr><td>七月</td><td>2017年8月22日</td><td>29</td></tr><tr><td>八月</td><td>2017年9月20日</td><td>30</td></tr><tr><td>九月</td><td>2017年10月20日</td><td>29</td></tr><tr><td>十月</td><td>2017年11月18日</td><td>30</td></tr><tr><td>十一月</td><td>2017年12月18日</td><td>30</td></tr><tr><td>十二月</td><td>2018年1月17日</td><td>30</td></tr></table><p>农历月的日数由两个月初一日相隔的日数算出。例如四月初一在公历4月26日,五月初一在5月26日,由此可知4月27日是四月初二、4月28日是四月初三……5月25日是四月三十、5月26日是五月初一,所以四月有三十日,是大月。</p><br><subsect id="ex2">例 二: 推 算 N<sub>2033</sub> (癸 丑 年) 的 所 有 农 历 月</subsect><p>这里用我计算的朔和中气时刻来编算癸丑年的农历月,朔和中气时刻可从<a href="sunMoon_simp.html?y=2033">气朔时刻网页</a>查得。根据气朔时刻网页的数据,W<sub>2032</sub>=2032年12月21日、W<sub>2033</sub>=2033年12月21日、M<sub>-1</sub>=2032年12月3日、M<sub>11</sub>=2033年11月22日,由此算出M<sub>11</sub>-M<sub>-1</sub>=354日,所以L=12,S<sub>2033</sub>没有闰月,所以其后的十一个月已定,不必理会S<sub>2033</sub>的其他中气。癸丑年正月初一是M<sub>-1</sub>之后的第二个朔日,是2033年1月31日,二月到十月的初一是其后的九个朔日,十一月初一是M<sub>11</sub>,即2033年11月22日。十一月之后的月份就要看S<sub>2034</sub>是否有闰月,如果有而且是在正月之前,则闰月属癸丑年。</p><p>从气朔时刻网页查得2034年冬至日在W<sub>2034</sub>=2034年12月22日,冬至日之前的朔日是M<sub>23</sub>=2034年12月11日。这里用M<sub>23</sub>来纪这个朔日,因为与其相关的农历月是从癸丑年算起的第二十三个平月。因为M<sub>23</sub>-M<sub>11</sub>=384日,所以L=13,意味着S<sub>2034</sub>是闰岁。现在要查看W<sub>2033</sub>后的中气和朔的日期,看看闰月是否发生癸丑年。因为癸丑年的头十一个月已定,我们只须看看W<sub>2033</sub>之后的几个中气和朔日就可知道闰月是不是在癸丑年。下表列出几个中气和朔日。</p><table><tr><th>朔</th><th>中 气</th></tr><tr><td>L1372: 2033年11月22日</td><td></td></tr><tr><td></td><td>冬至: 2033年12月21日</td></tr><tr><td>L1373: 2033年12月22日</td><td></td></tr><tr><td>L1374: 2034年1月20日</td><td>大寒: 2034年1月20日</td></tr><tr><td></td><td>雨水: 2034年2月18日</td></tr><tr><td>L1375: 2034年2月19日</td><td></td></tr></table><p>从表中看出L1373朔对应的农历月份是冬至后第一个没有中气的月份,所以是闰月,之前的那个月是十一月,所以是闰十一月,属癸丑年。确定了闰月后,S<sub>2034</sub>的其他月份也定了,十二月在闰十一月之后。下表列出癸丑年各月的编排。</p><table><tr><th>农 历 月</th><th>初 一 日 期</th><th>日 数</th></tr><tr><td>正月</td><td>2033年1月31日</td><td>29</td></tr><tr><td>二月</td><td>2033年3月1日</td><td>30</td></tr><tr><td>三月</td><td>2033年3月31日</td><td>29</td></tr><tr><td>四月</td><td>2033年4月29日</td><td>29</td></tr><tr><td>五月</td><td>2033年5月28日</td><td>30</td></tr><tr><td>六月</td><td>2033年6月27日</td><td>29</td></tr><tr><td>七月</td><td>2033年7月26日</td><td>30</td></tr><tr><td>八月</td><td>2033年8月25日</td><td>29</td></tr><tr><td>九月</td><td>2033年9月23日</td><td>30</td></tr><tr><td>十月</td><td>2033年10月23日</td><td>30</td></tr><tr><td>十一月</td><td>2033年11月22日</td><td>30</td></tr><tr><td>闰十一月</td><td>2033年12月22日</td><td>29</td></tr><tr><td>十二月</td><td>2034年1月20日</td><td>30</td></tr></table><br><subsect id="exceptional">异 常 的 年 份 N<sub>2033</sub> (癸 丑 年)</subsect><p>若干人指出农历年N<sub>2033</sub>癸丑年是异常年份,以前很多编历者都弄错了这年的农历月份。但如果细看例二的计算,似乎看不出这年有何特异之处。比较例一和例二的计算,反而觉得例二的计算较为简单。要明白癸丑年为何异常,先看看下表列出的朔和中气的日期,其中很多日期在例二的计算中略去了。</p><table><tr><th>朔</th><th>中 气</th><th>农 历 日 期</th></tr><tr><td>L1360: 2032年12月3日</td><td></td><td>壬子年十一月初一</td></tr><tr><td></td><td>冬至: 2032年12月21日</td><td>十一月十九</td></tr><tr><td>L1361: 2033年1月1日</td><td></td><td>十二月初一</td></tr><tr><td></td><td>大寒: 2033年1月20日</td><td>十二月二十</td></tr><tr><td>L1362: 2033年1月31日</td><td></td><td>癸丑年正月初一</td></tr><tr><td></td><td>雨水: 2033年2月18日</td><td>正月十九</td></tr><tr><td>L1363: 2033年3月1日</td><td></td><td>二月初一</td></tr><tr><td></td><td>春分: 2033年3月20日</td><td>二月二十</td></tr><tr><td>L1364: 2033年3月31日</td><td></td><td>三月初一</td></tr><tr><td></td><td>谷雨: 2033年4月20日</td><td>三月廿一</td></tr><tr><td>L1365: 2033年4月29日</td><td></td><td>四月初一</td></tr><tr><td></td><td>小满: 2033年5月21日</td><td>四月廿三</td></tr><tr><td>L1366: 2033年5月28日</td><td></td><td>五月初一</td></tr><tr><td></td><td>夏至: 2033年6月21日</td><td>五月廿五</td></tr><tr><td>L1367: 2033年6月27日</td><td></td><td>六月初一</td></tr><tr><td></td><td>大暑: 2033年7月22日</td><td>六月廿六</td></tr><tr><td>L1368: 2033年7月26日</td><td></td><td>七月初一</td></tr><tr><td></td><td>处暑: 2033年8月23日</td><td>七月廿九</td></tr><tr><td>L1369: 2033年8月25日</td><td></td><td>八月初一</td></tr><tr><td>L1370: 2033年9月23日</td><td>秋分: 2033年9月23日</td><td>九月初一</td></tr><tr><td>L1371: 2033年10月23日</td><td>霜降: 2033年10月23日</td><td>十月初一</td></tr><tr><td>L1372: 2033年11月22日</td><td>小雪: 2033年11月22日</td><td>十一月初一</td></tr><tr><td></td><td>冬至: 2033年12月21日</td><td>十一月三十</td></tr><tr><td>L1373: 2033年12月22日</td><td></td><td>闰十一月初一</td></tr><tr><td>L1374: 2034年1月20日</td><td>大寒: 2034年1月20日</td><td>十二月初一</td></tr><tr><td></td><td>雨水: 2034年2月18日</td><td>十二月三十</td></tr><tr><td>L1375: 2034年2月19日</td><td></td><td>甲寅年正月初一</td></tr><tr><td>L1376: 2034年3月20日</td><td>春分: 2034年3月20日</td><td>二月初一</td></tr><tr><td>L1377: 2034年4月19日</td><td></td><td>三月初一</td></tr><tr><td></td><td>谷雨: 2034年4月20日</td><td>三月初二</td></tr><tr><td>L1378: 2034年5月18日</td><td></td><td>四月初一</td></tr><tr><td></td><td>小满: 2034年5月21日</td><td>四月初四</td></tr></table><p>表中可见有三个农历月在八个月内不含中气:癸丑年八月、闰十一月和甲寅年正月,而且有两个月含两个中气:癸丑年十一月和十二月。一个农历月内出现两个中气的情况十分罕见,无中气的月份而不是闰月(「伪闰月」)的情况也是十分罕见的。其实可以看出「双中气」和「伪闰月」是会在相隔几个月内成双出现的。很多编历者弄错了月份编排,是因为有不少书籍和文章说农历月份的序数按月内的中气而定:含雨水的月份是正月、含春分的月份是二月、含谷雨的月份是三月等,而不含中气的月份定为闰月。问题是这三个无中气的月全都要闰吗?编历者或许察觉到在八个月内置三个闰月不合理,所以把最先出现的无中气月份,即癸丑年七月后的那个月定为闰七月,这就错了。伪闰月在N<sub>1984</sub>(甲子年)也出现过,但在真闰月之后,所以以最先出现的无中气月份为闰月的方法在该年没有出错。</p><p>以无中气的月份定为闰月这「伪法则」虽然大多数时候不错,但遇到伪闰月时就不灵了。至于「农历的月序按月内所含的中气而定」这「伪法则」在癸丑年也不灵了:癸丑年八月不含秋分、九月不含霜降、十月不含小雪、甲寅年正月不含雨水。如果遵从正确法则,癸丑年的月份安排没有什么奇特。如例二所示,从壬子年十一月到癸丑年十一月之间有十二个农历月,所以S<sub>2033</sub>是平岁,没有闰月,编排S<sub>2033</sub>的月份时不必理会中气日期,也懒得去查,编月份时也不知道(亦无须理会)其中一个月没有中气。到要处理十一月以后的月份时,发现S<sub>2034</sub>是闰岁,再看头几个中气日期,发现十一月之后那个月没有中气,所以是闰月,以后的月份也定下来了,不必看其他中气,所以不知道(亦无须理会)后面还有一个月没有中气。只要遵从正确法则,不存在任何问题。</p><p>那么这伪法则从何而来?其实这是顺治二年(1645年)历法改革前的法则。如<a href="solarTerms_simp.html">二十四节气网页</a>所述,顺治二年以前的 二十四节气用平气来定义,一个月最多只能有一个中气。可以推出闰岁只能有一个月不含中气,所以伪闰月也不存生。只要把十一月定为含冬至的月份,可推出十二月必含大寒,正月必含雨水等等。所以农历月序由月内中气决定,而无中气的月份定为闰月这规则在平气法下是没有问题的,但是改用定气法后就会碰钉。</p><p>由定气法所定义的二十四节气时间间隔并不相等,一个月有可能出现两个中气,虽然这情况很罕见。有双中气就有伪闰月,所以以前的法则不能再用,于是创制了法则五取代之前的无中气置闰法。</p><p>顺治二年的历法改革由德国传教士汤若望制定。新历法出现了双中气和伪闰月的情况,而且计算较为复杂,使当时的士大夫十分不满。前新加波国立大学数学系教授Helmer Aslaksen(现任挪威奥斯陆大学副教授)撰写了一篇介绍农历的文章,他指出当时中国的天文学不一定逊于西方,甚至认为当时没有一个西方传教士比得上元朝天文学家郭守敬,但是当时朝廷的中国天文官都是世袭,对自己传统的天文历法认识不深,在历法争议上辩不过西方传教士。汤若望制定的置闰法则现在仍在使用。</p><br><p>返回<a href="rules_simp.html#examples" style="background-color:pink">农历编算法则</a></p></div><br><br></body></html>