-
Notifications
You must be signed in to change notification settings - Fork 45
/
computation_simp.html
executable file
·1 lines (1 loc) · 61.7 KB
/
computation_simp.html
1
<!DOCTYPE html><html lang="zh"><meta name="keywords" content="农历, 农历编算"><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>ul.chi li{letter-spacing:4px;line-height:22px}body{counter-reset:sec-counter}sect::before{counter-increment:sec-counter 1;content:counter(sec-counter) ". "}</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,"computation","computation")'><div id="wrapper0"><div id="menu"></div><div id="language"></div><br><h1>编 算 农 历</h1><p>初稿: 2018年10月 最近一次重大修订: 2022年4月17日</p><br><p>本网站的农历涵盖年份是公元前722年至公元2200年,可分为七个时段:现代(1912年–2200年)、清朝(1645年–1911年)、西汉中叶至明末(前104年–1644年)、南明及明郑(1645–1683)、秦至汉初(前221年–前104年)、战国时代(前480年–前222年)及春秋时代(前722年–前481年)。每时段采用不同的方法计算农历,以下七节简单介绍这些计算方法。</p><p>下面用<span class="nowrap">N<sub>y</sub></span>表示年首最接近公历1月1日的中历年。例如<span class="nowrap">N<sub>150</sub></span>指汉桓帝和平元年,始于公元150年2月15日,终于151年2月3日。</p><br><div style="border:1px solid #000;padding:10px"><p><b>内容</b></p><ol><li><a href="computation_simp.html#modern">现 代 (1912年 – 2200年)</a></li><li><a href="computation_simp.html#qing">清 朝 (1645年 – 1911年)</a></li><li><a href="computation_simp.html#imperial">西 汉 中 叶 至 明 末 (前104年 – 1644年)</a></li><li><a href="computation_simp.html#southernming">南 明 及 明 郑 (1645年 – 1683年)</a></li><li><a href="computation_simp.html#qinhan">秦 至 汉 初 (前221年 – 前104年)</a></li><li><a href="computation_simp.html#warring">战 国 时 代 (前480年 – 前222年)</a></li><li><a href="computation_simp.html#spring">春 秋 时 代 (前722年 – 前481年)</a></li></ol><p> <a href="computation_simp.html#references">备 注 和 参 考 文 献</a></p></div><br><sect id="modern">现 代 (1912年 – 2200年)</sect><p>这时段的农历根据《农历的编算和颁行》文件<sup><a href="computation_simp.html#GBT33661">国标</a></sup>(编号GB/T 33661-2017)规定的方法编算(详情可参阅<a href="rules_simp.html">农历法则网页</a>),计算结果与中国科学院紫金山天文台出版的书籍里的农历资料核对过。太阳和月球的地心位置用美国喷射推进实验室(Jet Propulsion Laboratory)编制的DE431<sup><a href="computation_simp.html#DE431">DE431</a></sup>历表计算。<sup><a href="computation_simp.html#fn1">注一</a></sup> 喷射推进实验室的DE系列历表用数值积分方法计算太阳系行星及月球的位置,是目前世界上最准确的历表之一,计算时考虑到343个质量比较大的小行星对大行星的重力摄动。太阳系各天体的运动计及广义相对论对牛顿力学的修正,广义相对论的效应以参数化后牛顿n体度规推出的动力学方程描述。此外还计及地球、月球、及太阳因偏离完美球状而引起的额外加速度。用DE431历表计算出的地心位置经过光行时及<a href="https://zh.wikipedia.org/zh-cn/%E5%85%89%E8%A1%8C%E5%B7%AE" target="_blank">光行差</a>的修正后,得到的是<a href="https://baike.baidu.com/item/%E5%9B%BD%E9%99%85%E5%A4%A9%E7%90%83%E5%8F%82%E8%80%83%E6%9E%B6" target="_blank">国际天球参考系(ICRS)</a>的地心座标视位置,再经过参考架偏差矩阵(frame bias matrix)以及岁差和章动的变换后算出地心视位置相对于瞬时黄道及真春分点的黄道座标。岁差采用Vondrák等人于2011年建立的岁差模型<sup><a href="computation_simp.html#vondrak11">Vondrák</a></sup>计算。章动根据国际天文联会推荐的IAU2000A章动模型计算,计算公式取自国际地球自转和参考系服务规范(IERS Conventions)在2010年发布的文件<sup><a href="computation_simp.html#iers2010">IERS10</a></sup>和美国海军天文台在2005年发布的文件<sup><a href="computation_simp.html#kaplan05">Kaplan</a></sup>。月相和节气的质心力学时(<a href="https://en.wikipedia.org/wiki/Barycentric_Dynamical_Time" target="_blank">TDB</a>)时刻用<a href="https://zh.wikipedia.org/zh-cn/%E7%89%9B%E9%A1%BF%E6%B3%95" target="_blank">牛顿-拉弗森(Newton-Raphson)求根法</a>计算,所得的TDB时刻再转换成UTC+8(1972年及以后)或UT1+8(1972年前)时刻。换算过程中省略了TDB到地球时(<a href="https://en.wikipedia.org/wiki/Terrestrial_Time" target="_blank">TT</a>)的转换,因为两者差异小于0.002秒,可视为等同。TT到UT1的转换公式取自Stephenson等人(2016)及Morrison等人(2021)的<a href="http://astro.ukho.gov.uk/nao/lvm/" target="_blank">拟合公式</a><sup><a href="computation_simp.html#sm2016">SM16</a></sup>,1972年到现在的TT-UTC根据正式公布的闰秒计算,2024年后的TT-UTC根据Stephenson等人(2016)及Morrison等人(2021)的<a href="http://astro.ukho.gov.uk/nao/lvm/" target="_blank">外推公式</a>计算,其实他们的公式是用来预推TT-UT1的,但是也可用来作TT-UTC的近似值,因为根据规定UTC和UT1相差不会超过0.9秒。我已把本网站编算农历时详细的数学计算写在<a href="docs/sunMoon_simp.pdf">这pdf文件</a>供有兴趣的读者参阅。</p><p>本网站以前用国际天文联会推荐的IAU2006模型计算岁差,现在改用Vondrák等人的岁差模型,原因是IAU2006模型只适用于公元2000年前后一千年左右,以前本网站载的农历年限是公元1841年至2200年,用IAU2006模型没有问题。现在本网站的农历年限是公元前722年至公元2200年,虽然古代的农历根据实历,但是<a href="index_simp.html">年历网页</a>仍载有用现代方法计算当时合朔和二十四节气的UT1+8时刻以供参考,因此IAU2006模型便有所不足。Vondrák等人的新岁差模型有效年限是公元2000年前后二十万年,我比较过用Vondrák等人的模型和IAU2006模型计算出的月相和二十四节气的时刻,发现在1600年至2500年间,两岁差模型的二十四节气时刻偏差不超过0.19秒、月相时刻偏差不超过0.00038秒,因此IAU2006模型与Vondrák等人的新模型在这时段可视为等同。</p><p>用以上方法编算的农历与两本历书比对过,一本是中国科学院紫金山天文台编的《新编万年历(修定本)》<sup><a href="computation_simp.html#pmo86">新编万年历</a></sup>,另一本是刘宝琳编的《100年袖珍干支月曆》<sup><a href="computation_simp.html#liu93">刘宝琳</a></sup>。《100年袖珍干支月曆》的编者刘宝琳曾是紫金山天文台的研究员,编该书时已从事历算工作近四十年,并曾以紫金山天文台的名义出版了多种历书,《新编万年历》也是由他主编的。《新编万年历》的年限是从1840年(道光二十年)到2050年,《100年袖珍干支月曆》的年限是从1911年到2010年。两本书的农历资料是一致的,只是《100年袖珍干支月曆》还把朔、望和二十四节气的时刻列出到分钟。两本书中1912年到1928年的农历根据北洋政府教育部中央观象台编的《中华民国历书》,1929年到1948年的农历根据中华民国中央研究院天文研究所编的《国民历》<sup><a href="computation_simp.html#kuomin">注二</a></sup>,1949年及以后的农历则根据紫金山天文台编算的农历。</p><p>本网站编算的这时段农历与两本书所载的资料大多一致,遇到农历初一的日期不一致时就以两本书的资料为准。不一致的情况有三次而且都是发生在1929年以前。在这些不一致的情况,合朔的时刻仍然用我的计算,只是农历初一的日期改了。除了朔日的日期有差异外,二十四节气的日期有时也有差异。除了一项外,所有的差异也都是发生在1929年以前。下表把所有的合朔和二十四节气的日期差异列出来。</p><br><table><tr><th>农 历 年</th><th>农 历 月</th><th>初 一 的 公 历 日 期<sup>*</sup></th><th>合 朔 时 刻 (UT1+8)</th></tr><tr><td>N<sub>1914</sub> 癸 丑 年</td><td>十 月</td><td>1914年11月17日</td><td>1914年11月18日 00:02</td></tr><tr><td>N<sub>1916</sub> 丙 辰 年</td><td>正 月</td><td>1916年2月3日</td><td>1916年2月4日 00:05</td></tr><tr><td>N<sub>1920</sub> 庚 申 年</td><td>十 月</td><td>1920年11月10日</td><td>1920年11月11日 00:05</td></tr></table><p><sup>*</sup> 初一的日期根据当时政府颁行的日历。</p><br><table><tr><th>公 历 年</th><th>节 气</th><th>本网站计算的节气时刻(UT1+8)</th><th>当时政府颁行的日历</th></tr><tr><td>1912</td><td>小雪</td><td>11月22日 23:48</td><td>11月23日 00:39</td></tr><tr><td>1913</td><td>秋分</td><td>9月23日 23:53</td><td>9月24日 00:48</td></tr><tr><td>1917</td><td>大雪</td><td>12月8日 00:01</td><td>12月7日 23:47</td></tr><tr><td>1927</td><td>白露</td><td>9月9日 00:05</td><td>9月8日 23:52</td></tr><tr><td>1928</td><td>夏至</td><td>6月22日 00:06</td><td>6月21日 23:53</td></tr><tr><td>1979</td><td>大寒</td><td>1月20日 23:59:54</td><td>1月21日 00:00</td></tr></table><br><p>1914年以前的差异主要是因为当时的计算方法根据乾隆七年(1742年)编成的《历象考成后编》,《历象考成后编》成书时还算先进(见下一节),现在看来是很不准的,而且当时用北京地方视时。用《历象考成后编》推算的时刻可以有几分钟至几十多分钟的误差。自1914年起历法计算采用国外新方法,改北京地方视时为北京地方平时(UT+7:46),与东经120°地方平时有十四分钟偏差,这就是1914年、1916年、1917年、1920年、1927年和1928年出现日期差异的原因,1929年起改用东经120°平时(UT+8)(UTC要到1960年代才创立)后鲜有差异。至于1979年的情况比较特殊,我据DE431历表推算的大寒时刻在1月21日零时之前六秒,《100年袖珍干支月历》和《一九七九年中国天文年历》载的时刻是00:00(用《一九七九年中国天文年历》的太阳表数据算出的时刻是00:00:12),可见大寒时刻非常接近午夜零时,要用很准确的历表才能把确实日期算出。1984年以前,世界上大多数的天文年历(包括紫金山天文台编的《中国天文年历 》)是根据1895年美国天文学家西蒙‧纽康(Simon Newcomb)编的<a href="https://zh.wikipedia.org/zh-cn/%E7%B4%90%E5%BA%B7%E7%9A%84%E5%A4%AA%E9%99%BD%E8%A1%A8" target="_blank">太阳表</a>计算太阳位置,纽康太阳表的精确度约为1",所以用其计算的二十四节气时刻可以有25秒的误差。《100年袖珍干支月曆》的节气计算可能也是用类似精度的太阳历表计算,因为书中所列的节气时刻和我推算的时刻常有一分钟偏差,而这样的偏差不见于紫金山天文台编的《2015年中国天文年历 》,其实这也不奇怪,因为《2015年中国天文年历 》用DE421历表计算太阳位置,DE421和DE431在近几十年的差异十分微少。不管怎样,这些二十四节气的日期虽然相差一天,但是并没有影响农历月份的编排,我在本网站相关的网页用红色字形指出了这些差异。</p><p><a href="rules_simp.html#newStandard">农历法则网页</a>提到数十年后的合朔和二十四节气的UTC+8时刻现在暂时不能准确计算,有若干合朔和节气的预推时刻接近午夜零时,所以确实日期可能和预推日期有一日之差。合朔日期可能有一日之差即意味着预推的农历初一日可能有一日之差。至于二十四节气的情况比较简单,因为节气有一日之差完全不影响农历月份的编排,中气有一日之差也大多无碍,除非初一日恰好发生在这个中气的一两日内,这种特殊情况如果出现或会影响闰月及其他月份次序。我的计算显示这种特殊情况直到2200年也不会发生。下表列出2050年后预推时刻接近午夜零时的合朔和二十四节气,因此确实日期或会和预推日期有一日之差。这些情况在本网站的相关网页用红色字形注明。</p><br><table><tr><th>公 历 年</th><th>合朔的预推时刻(UTC+8)</th></tr><tr><td>2057</td><td>9月29日 00:00:40</td></tr><tr><td>2089</td><td>9月4日 23:59:11</td></tr><tr><td>2097</td><td>8月8日 00:02</td></tr><tr><td>2115</td><td>2月24日 23:59</td></tr><tr><td>2116</td><td>5月12日 23:59</td></tr><tr><td>2133</td><td>9月29日 00:02</td></tr><tr><td>2165</td><td>12月4日 00:00:29</td></tr><tr><td>2172</td><td>10月18日 00:01</td></tr></table><br><table><tr><th>公 历 年</th><th>节 气</th><th>预 推 时 刻 (UTC+8)</th></tr><tr><td>2051</td><td>春 分</td><td>3月20日 23:59:19</td></tr><tr><td>2083</td><td>立 春</td><td>2月3日 23:59:27</td></tr><tr><td>2084</td><td>春 分</td><td>3月20日 00:00:35</td></tr><tr><td>2114</td><td>小 雪</td><td>11月22日 23:58</td></tr><tr><td>2142</td><td>白 露</td><td>9月8日 00:00:11</td></tr><tr><td>2155</td><td>霜 降</td><td>10月23日 23:58</td></tr><tr><td>2157</td><td>冬 至</td><td>12月21日 23:59</td></tr><tr><td>2183</td><td>春 分</td><td>3月20日 23:59:46</td></tr><tr><td>2186</td><td>立 春</td><td>2月4日 00:02</td></tr></table><br><sect id="qing">清 朝 (1645年 – 1911年)</sect><p>清朝历法的编算法则和现在的基本上一致,只是时间用北京的地方真太阳时,而不是东经120°区时(即UT1+8)。本网站对这时段的历日先用现代方法编算,然后与实历核对把不一致的历日改正。历日资料是根据《新编万年历》<sup><a href="computation_simp.html#pmo86">新编万年历</a></sup>和《三千五百年历日天象》<sup><a href="computation_simp.html#Zhang97">张培瑜97</a></sup>。《新编万年历》在1912年前的日历根据北京故宫博物院收藏的《大清时宪书》,但是该书只载有1840年后的农历。《三千五百年历日天象》里的农历资料是作者张培瑜根据史载古代历法的编算法则复原当时历法,并与存世的历日资料核对过,书中前言说近400多年的历书根本上完整地保存了,所以书中至少在明朝中叶以后的历日应是大部份符合当时颁行的日历,而我也检查过书中至少在1840年至1911年的历日资料与《新编万年历》一致。</p><p>比较实历与用现代方法编算的农历,发现这时段有二百多处不一致。虽然要作二百多项修改,总好过把资料用手一一输入。造成这些差异原因除了是所用的时间不同外,还与当时的计算方法不够准确有关。</p><p>2020-12-12 更新: 造了时宪历日月位置及节气和月相时刻的<a href="http://ytliu.epizy.com/Shixian/index_simp.html" target="_blank">在线工具</a>,或可供研究清朝天文学史的学者参考。</p><p>清朝的历法基本上用明末制定的《崇祯历书》。明朝末年,钦天监推算的日月食有三次与实际天象相差颇大,崇祯皇帝接纳改历建议,命徐光启组织历局研究改历。徐光启主张采用欧州传教士传入的西方天文学计算历法,历局先后聘请耶稣会义大利传教士龙华民(Nicholas Longobardi)、德国传教士邓玉函(Johann Schreck)、义大利传教士罗雅谷(Giacomo Rho)、德国传教士汤若望(Johann Adam Schall von Bell)等人参与改历工作,五年后于崇祯七年十一月编译成一百三十七卷的《崇祯历书》。由于遭到守旧派的阻挠,新历法迟迟未有实行。在《明史‧历志》中记录了发生过八次中西天文学的较量,包括日食、月食、木星、水星、火星的运动,结果是西法以八比零击败中法大获全胜。崇祯帝深知西法之密,于崇祯十六年(1643年)八月下定颁布新历的决心,但颁行《崇祯历书》的命令还没有实施,明朝就已灭亡。</p><p>顺治元年(1644年)五月满清入关后,摄政王多尔衮听说西洋新历法精湛,召汤若望入朝问新法之事,不久决定采用。汤若望将《崇祯历书》删改压缩成一百零三卷,更名为《西洋新法历书》。顺治二年(公元1645年),清政府正式颁行依新历法编算的《时宪历》。新历法采用定气法计算二十四节气,打破了二千多年来一直沿用的平气法。日月五星的计算采用第谷‧布拉赫(Tycho Brahe)的系统。</p><p><strike>康熙五年(1666年)</strike> 康熙六年(1667)至八年(1669年)因<a href="https://zh.wikipedia.org/zh-cn/%E5%BA%B7%E7%86%99%E5%8E%86%E7%8B%B1" target="_blank">历狱</a>而复用明朝《大统历》,二十四节气改回平气。清朝历算家汪曰桢在其《历代长术辑要》说清钦天监后来编的《御定万年书》(乾隆年间编成,后来多次续修延长年限)在这几年的二十四节气日期仍用定气,系后来以新法追改之故。郑鹤声《近世中西史日对照表》<sup><a href="computation_simp.html#Zheng1936">郑鹤声</a></sup>的二十四节气日期采用《万年书》的数据,所以也与实历不符,查张培瑜《三千五百年历日天象》也发现其二十四节气日期是定气,亦与《近世中西史日对照表》的资料一致。本网站在这几年提供两套历书节气:其一取《三千五百年历日天象》的数据,此乃根据西洋新法追推的定气;另一套历书节气根据《大统历》推算。至于朔日,依明朝《大统历》和依《西洋新法历书》计算结果在这几年的日期完全一致,只是由于节气日期的差异使康熙八年和九年的置闰出现分歧:依《大统历》康熙八年闰十二月,依《西洋新法历书》则在康熙九年闰二月。这情况史书也有记载:康熙八年三月,比利时传教士南怀仁(Ferdinand Verbiest)受任钦天监监副治理历法,指出按旧法推出的闰十二月不妥,按新法置闰当在明年二月。康熙帝命礼部详查此事,钦天监官员多支持南怀仁,于是下诏「罢康熙八年十二月闰、移置康熙九年二月。其节气占候、悉从南怀仁之言」(<a href="https://zh.wikisource.org/wiki/%E5%BA%B7%E7%86%99%E6%9C%9D%E5%AF%A6%E9%8C%84/%E5%8D%B7%E4%B9%8B27" target="_blank">《康熙朝实录‧卷二十七》</a>)。由此可知《大清康熙八年岁次己酉时宪历》有两个版本,一是以旧法推算,一是以西洋新法推算。</p><p><b>2024年5月更新:</b> 台湾国立故宫博物院的<a href="https://qingarchives.npm.edu.tw/index.php" target="_blank">清代档案检索系统</a>藏有若干康熙初年的《大清七政经纬躔度时宪历》,其中康熙五年所载的节气日期和时刻符合《西洋新法历书》的推步,康熙六年至八年则符合大统历的推步。</p><p>《西洋新法历书》中有图与表不合的情况,而且有很多隐晦难晓之处。清政府于康熙五十三年(1714年)开始修订《西洋新法历书》,在康熙六十一年(1722年)完成了《钦若历书》,雍正年间更名为《历象考成》。此书以康熙帝的名义御制,康熙帝有意摆脱传教士对历算的控制,在畅春园蒙养斋创建了算学馆,招揽人才研习西方的数学和天文学及编撰书籍,《历象考成》就有很多中国学者参与编写,书中也加入了一些中国学者的研究成果。《历象考成》成书后,算学馆里中国学者认为他们已掌握了西方的天文历算,开始挑战传教士对历算的领导地位,有人提出钦天监不应再由西洋人把持。其实他们对当时西方天文学的进展一无所知,《历象考成》仍然沿袭第谷的体系,不但已落后于当时西方的天文学,而且因年代日久而误差渐大。雍正八年(1730年)六月初一发生日食,这是《历象考成》成书后首次在京师可见的日食。钦天监监正戴进贤(Ignatius Köler)和监副徐懋德(Andreas Pereira)为了显示他们的历算权威仍无可取代,趁这次日食指出《历象考成》的预报与观测有微小偏差,钦天监满洲监正明图上奏说若不及时修理历法恐愈久愈差。于是戴进贤和徐懋德奉命修订历法,他们根据法国天文学家乔凡尼‧卡西尼(Giovanni Cassini)及德国传教士格拉马迪库思(Nicasius Grammaticus)的计算方法和数据制定了一份日躔、月离表,即太阳和月球运动表。他们把表格附在《历象考成》诸表之末,既没有说明制表之依据,也不说明使用方法,钦天监中只有戴进贤、徐懋德及(食员外郎俸五官正)蒙古人明安图三人懂得使用新表,情况很不寻常。唯恐历法久而失传,协辨吏部尚书顾琮于乾隆二年奏请增补图说,于是清政府组织人员重修《历象考成》,于乾隆七年(1742年)编成《历象考成后编》。书中摒弃了第谷体系,引进开普勒第一和第二定律,不过椭圆的焦点是地球而不是太阳,这在具体计算上得出的结果是相同的。月球的运动源自牛顿的月亮模型,这模型结合了开普勒定律、英国天文学家霍罗斯(Jeremiah Horrocks)的椭圆心转动模型和牛顿用其万有引力理论推出的若干修正项。<sup><a href="computation_simp.html#cook">Cook</a>, <a href="computation_simp.html#kollerstrom">Kollerstrom</a></sup></p><p>由于用第谷体系计算的历法不够准确,二十四节气的日期和用现代计算的常有差异,所以在<a href="index_simp.html">年历网页</a>里在清初仍然列出历书节气的日期,即按当时《时宪历》计算的日期。改用开普勒定理计算历法后,节气日期差异大大减小,因此在1733年后除了那些历书节气与现代计算有差异外,其余略去不注。至于合朔,朔日就是每月的初一日,本网站的古代农历日期全部依当时的历法,不用另外注明历书朔日。</p><p>《时宪历》打破传统用定气法计算二十四节气后,置闰法则出现了一些问题,以前一直沿用的无中气置闰法不能再用,因为在一岁内可能会出现两个无中气的月份。明末历局在研究历改时已注意到这个问题,当时的历局官员李天经主张按中气时刻在合朔时刻先后来决定其所属之月份。如果有中气和合朔发生在同一日,根据传统中气属于这个月的初一日,但李天经主张要考虑中气的时刻在合朔时刻之前还是之后,如果在合朔之后,则属这个月,如果在合朔之前,则属前一个月。这新法则能应付几乎所有因采用定气法而出现的置闰问题。顺治二年(1645年)首次用新法编历,<a href="http://ytliu.epizy.com/Shixian/N1645_simp.html" target="_blank">《顺治二年岁次乙酉时宪历》</a>所载的中气大暑出现在闰六月初一,违反了闰月不含中气的规定。汪曰桢在其《历代长术辑要》解释说虽然大暑与朔发生在同一日,大暑的时刻早于合朔时刻,属于前月之中气,所以闰六月不含中气。这与李天经的说法一致。但是这新法则只在顺治二年用过,以后不再使用。比较顺治二年以及以后的闰月安排,显示当时还没有完全确立对于采用定气后的置闰法则。《清史稿》明确说明时宪历最终采用的置闰法则:「求闰月,以前后两年有冬至之月为准。中积十三月者,以无中气之月,从前月置闰。一岁中两无中气者,置在前无中气之月为闰。」<sup><a href="computation_simp.html#fn4">注四</a></sup>这就是<a href="rules_simp.html#rules">农历法则网页</a>所列的法则五。不取李天经之法,可能是因为传统的无中气法已能处理大多数的闰月。平岁有无中气之月或闰岁有两无中气之月毕竟罕见,只须稍修改无中气法便可解决问题。如果用李天经之法,就会出现顺治二年的情况,即把本来无中气法能处理的情况也改得不合传统。采用定气法计算二十四节气已使守旧派十分不满<sup><a href="computation_simp.html#xiaoan">晓庵新法</a></sup>,如果再用李天经之法必然会引起更多争议。</p><br><sect id="imperial">西 汉 中 叶 至 明 末 (前104年 – 1644年)</sect><p>在这一千七百多年间,在中国行用的历法多达四十部以上,计算方法和现代的大有不同,如果要一一追寻各历法的计算方法然后核对计算结果就会很费时,所以本网站直接采用《三千五百年历日天象》<sup><a href="computation_simp.html#Zhang97">张培瑜97</a></sup>的数据。核对资料时发现该书在这段期间有四十多处错误,其中大部分已被<a href="http://www.nongli.net/sxwnl/" target="_blank">寿星天文历</a>的创始人许剑伟指出,现将已发现的错误在<a href="3500Calendars_errors_simp.html">此网页</a>列出。此外,《三千五百年历日天象》在汉武帝太初元年(公元前104年)至汉章帝建初九年(84年)间列出的二十四节气按《汉书‧律历志》的次序,即惊蛰在雨水之前、谷雨在清明之前;在建初九年之后则按《淮南子‧天文训》的次序,即和现在通行的次序一致。《淮南子》成书于公元前139年(汉武帝建元三年)左右,《汉书》则书于公元90年左右(汉和帝年间),可见二十四节气的次序在东汉时还没有完全确定。为了避免混淆,本网站不跟从《三千五百年历日天象》,二十四节气一律按《淮南子‧天文训》的次序。</p><p>本网站从汉武帝太初元年(公元前104年)五月起用《三千五百年历日天象》的数据,五月前用一套汉初历法的复原法计算(见第5节)。</p><p>从汉武帝太初元年至明末这一千七百多年间,有几件事值得注意:</p><ol><li><p>发生了四次改正朔事件:</p><ul class="chi"><li>公元9年,王莽建立新朝,改正朔以殷正建丑(即现在的十二月)为年首,故<span class="nowrap">N<sub>8</sub></span>(戊辰年)只有十一个月。农历月的数序是:建丑为正月、建寅为二月等等,与现在通用的月序相差一个月。新朝于地皇四年(癸未年,公元23年)亡,绿林军拥立汉淮南王刘玄为帝,改元更始元年,恢复以建寅(即现在的正月)为年首。地皇四年和更始元年有十一个月重叠。地皇四年用丑正、更始元年用寅正,所以地皇四年二月相当于更始元年正月、地皇四年三月相当于更始元年二月……地皇四年十二月相当于更始元年十一月。</li><li>魏青龙五年(丁巳年,<span class="nowrap">N<sub>237</sub></span>),魏明帝改正朔,以殷正建丑(即现在的十二月)为年首,二月后实施,并改元景初元年。所以<span class="nowrap">N<sub>237</sub></span>丁巳年没有三月份,二月后的月份是四月。农历月的数序是:建丑为正月、建寅为二月等等,与现在通用的月序相差一个月。景初三年(<span class="nowrap">N<sub>239</sub></span>)明帝驾崩,次年恢复以建寅(即现在的正月)为年首。景初三年有两个十二月(建子和建丑)。另外,青龙五年正月开始使用新历法,使青龙四年十二月只有二十八日。</li><li>公元689年12月,武则天改正朔,以周正建子(即现在的十一月)为年首,建子改称正月,建寅(即现在的正月)改称一月,其他农历月的数序不变(即正月、十二月、一月、二月⋯⋯十月)。公元701年2月又改回以建寅为年首。<span class="nowrap">N<sub>689</sub></span>(己丑年)只有十一个月(其中一个月是闰月),而<span class="nowrap">N<sub>700</sub></span>(庚子年)有十五个月(其中一个月是闰月)。</li><li>公元761年12月,唐肃宗改正朔,以周正建子(即现在的十一月)为年首,建子改称正月、建丑(即现在的十二月)改称二月、建寅(即现在的正月)改称三月等等,与现在通用的月序相差二个月。公元762年4月又把农历月的数序改回以建寅为正月、建卯为二月等。<span class="nowrap">N<sub>761</sub></span>(辛丑年)只有十个月,而<span class="nowrap">N<sub>762</sub></span>(壬寅年)则有十四个月,其中有两个四月(建卯和建巳)和两个五月(建辰和建午)。</li></ul></li><li><p>从汉武帝太初元年至明末这一千七百多年间,中国有时处于分裂局面,有多个政权并存,行用的历法也不尽相同。我花了一些时间涉猎了其中二十部古代历法,成功计算了665年以前以及822至892年和1281年至1644年的日历,619年以前的日历几乎完全符合《三千五百年历日天象》的数据,619-665、822-892和1281-1644年的日历也大部分和《三千五百年历日天象》一致。撑握了这些历法的推步后就着手编制分裂时代诸国的日历。</p><p>《三千五百年历日天象》附表2到附表4载有分裂时代诸国的朔闰异同表,书中前言说附表的数据参照清朝历算家汪曰桢编的《历代长术辑要》。为了方便核对我的推步结果,我用计算机编制了依该书附表格式的<a href="ThreeKingdoms_calendars_simp.html">三国</a>及<a href="NorthSouth_calendars_simp.html">南北朝</a>时期的朔闰异同表,发现我的推步结果只有几处与该书的附表不合。其中有三例是该书的附表与正文的数据不合,我的推步符合正文。由于我不是历史学专家,无从判断孰是孰非,所以只注明这些矛盾的资料。对于其余几处差异,我比较了台湾中央研究院的<a href="http://sinocal.sinica.edu.tw/" target="_blank">两千年中西历转换网站</a>和汪曰桢编的《历代长术辑要》,有四处这些资料和《三千五百年历日天象》一致,于是就修改我的数据,但有四处《三千五百年历日天象》的数据与《历代长术辑要》或两千年中西历转换网站不一致,所以不取该书的数据。</p><p>我本来也想自行编算辽金元三朝的日历,但是遇到了困难。辽初用后晋司天监马重绩的《调元历》,辽圣宗统和十二年(994年)改用贾俊的《大明历》,到金天会十五年(1137年)改用司天杨级的《大明历》,金大定廿二年(1182年)又用赵知微的《重修大明历》。《调元历》和贾俊的《大明历》已失传,元朝史官修《辽史‧历象志》时不知贾俊《大明历》的内容,竟然说是几百年前祖冲之的《大明历》,然后转抄了《宋书》所载祖冲之的《大明历》!对于这两部已失传的历法,汪曰桢用他认为相近的历法替代。《历代长术辑要》以《宣明历》替代《调元历》;以金赵知微的《重修大明历》替代贾俊的《大明历》,然后根据《辽史》调整闰月。查看《三千五百年历日天象》附表4的宋辽金元朔闰异同表,发现这时期南北两朝的历日差异不大。与其效法汪曰桢先用他历计算然后调整历日,不如直接采用附表4的数据,结果是计算辽金元日历的 JavaScript 程式及所需的 JSON 数据加起来比三国和南北朝的日历计算还要简洁。这等同於先用南朝的历法计算然后调整历日用于北朝,复杂的计算其实隐藏在南朝的历法计算中。附表4没有载辽金元历法的二十四节气,<a href="index_simp.html">年历网页</a>的辽金元历书节气须要另外计算,计算方法在<a href="LiaoJinYuan_calendars_simp.html">宋辽金元朔闰异同表</a>网页表末的备注简略叙述。</p><p>综合分裂时代的历法计算,<a href="index_simp.html">年历网页</a>加了三国时蜀和吴的年历;十六国时加了后秦和北凉的年历;南北朝时加了北魏、东魏、西魏、北齐、北周及隋朝灭陈前的隋朝年历;五代末年和宋朝时加了辽、金、蒙古和元朝灭宋前的年历。只要输入分裂时代的公历年,便有按键选择分裂时代的王朝。<a href="table_simp.html">朔闰表网页</a>和<a href="era_names_simp.html">年号网页</a>也加了这些王朝的朔闰表和纪年表。</p></li><li><p>在学习明朝《大统历》的气朔推步时,发现了《三千五百年历日天象》、薛仲三和欧阳颐的《两千年中西历对照表》、陈垣的《二十史朔闰表》及汪曰桢的《历代长术辑要》在明朝竟然至少有七个朔日错误,现已撰<a href="MingCalendar_simp.html">「明朝《大统历》的定朔计算及历表朔日订正」</a>详细说明,并根据现存明朝《大统历》历书改正了本网站明朝的七个朔日资料。</p></li><li><p>中国的历法在这段期间频频更改,公历却相当稳定,只有一次重大的改革,即1582年的格里高里历改,1582年前公历用儒略历,凡能被四整除的年份是闰年,平年365日,闰年366日,一年的平均日数是365.25日,比回归年长0.0078日,积128年就有一日偏差,这使春分日期在儒略历不断推前。复活节是西方重要的宗教节日,复活节的日期在公元325年确立,取春分月圆后的第一个星期日,但是「春分」和「月圆」不用天文学的定义,而是用近似值。计算复活节时「春分」当时定为儒略历的3月21日,因为这是当时春分在儒略历的近似日期,「月圆」则定为教会历(ecclesiastical calendar)某月的第十四日。教会历是一种阴阳历,历法的朔望依<a href="https://zh.wikipedia.org/zh-hans/%E9%BB%98%E5%86%AC%E7%AB%A0" target="_blank">默冬章(Metonic cycle)</a>计算,即假设235个朔望月等同于19个回归年,这也是中国古代十九年七闰法的依据。但是235个朔望月(6939.688日)比19个回归年(6939.6075日)长0.08日,积久渐差。历法之回归年及朔望月偏差使春分日期在儒略历的日期不断提前,天文学上月圆之日亦渐渐偏离历法的月圆日。到了十六世纪末,春分日期已移到3月11日,望日也比历法推算的月圆日早了四日,历法「失天」的情况引起学者对复活节计算方法的争议,并要求改历。于是教皇格里高里十三世在1582年宣布改历,把当年10月4日之下一日定为10月15日,跳了十日使春分的日期回到3月21日,并规定在四百年中减去三个闰年,具体方法是凡公历年是4的倍数但不是100的倍数(例如2016年)都是闰年,如果公历年是100的倍数但不是400的倍数(例如1900年)就不闰,如果公历年是400的倍数(例如2000年)则闰。这就是现在行用的格里高里历,其一年平均日数是365.2425日,颇接近回归年的数值365.2422日,积3300年才有一日偏差。历改也修改了朔望的计算,使算出的朔望日在较长时间内不偏离真实的朔望日。然而只有义大利、西班牙、葡萄牙、法国、波兰、<a href="https://baike.baidu.com/item/%E4%BD%8E%E5%9C%B0%E5%9B%BD%E5%AE%B6" target="_blank">低地国家</a>及这些国家的殖民地在1582年遵从教皇指示改用新历,基督新教及东正教等国家起初抵制新历,后来陆逐采用。希腊于1923年才改用格里历,是最迟采用新历的欧洲国家。虽然西方国家并不是都在1582年改用格里历,这里遵从惯例在1582年10月15日起改用格里历纪日。<sup><a href="computation_simp.html#fn3">注三</a></sup></p></li><li><p>儒略历是罗马共和国独裁官儒略‧凯撒(Julius Ceasar)采纳埃及亚历山大的希腊天文学家索西琴尼(Sosigenes of Alexandria)计算的历法,在公元前45年1月1日正式使用。凯撒不久被杀,而儒略历在最初36年执行上出现了置闰错误,本来应该每四年一闰却变成每三年一闰,到了公元前8年才決定糾正错误。由于已多闰了三次,于是在其后十二年间停闰三次,到公元8年才恢复正常的闰年。</p><p>近代学者陈垣在其著作《二十史朔闰表》和《中西回史日历》在公元元年开始注有公历日期,采用古罗马历法,公元4年停闰,因此公元元年至3年的日期与现行各国历表都相差一日。上面提到的兩千年中西曆轉換网站也是在公元4年停闰。张培瑜对这做法不以为然,他在《三千五百年历日天象》前言指出公历纪年不是古罗马人在公元元年所创,而是后人在六世纪时创立的,对之前的纪年全部用逆推。西方各国的古代历法也是十分混乱,创立公历纪年纪日的目的就是为了将各国历法转换成统一的纪日系统以方便研究历史,所以不应该将古罗马历的混乱情况带到公历。我赞同张培瑜的见解,本网站的公历在公元8年以前也是用逆推的儒略历(<a href="https://en.wikipedia.org/wiki/Proleptic_Julian_calendar" target="_blank">proleptic Julian calendar</a>),不考虑古罗马历的置闰错误,也不考虑2月和8月的日数可能更改过。这也是现代西方学者一般采用的纪年纪日法。</p></li><li><p>公历月名的英文是January, February, March, April, May, June, July, August, September, October, November和December,中文一般意译为1月、2月……12月等,但是从January到August的八个月名其实和月序无关,September至December则是七月、八月、九月和十月的意思,这是因为古罗马历本来以March作为一年的起始月,十二个月中只有前十个月有月名: March, April, May, June, Quintilis, Sextilis, September, October, November 和 December,最后两个月没有月名。March, April, May, June来自战神玛尔斯(Mars)、花开之月(又一说是来自美丽女神阿佛洛狄忒Aphrodite)、女神玛雅(Maia)及女神朱诺(Juno),Quintilis至December是五月至十月,后来最后两个月得名January(守护神雅努斯Janus)和February(源自古代净化心灵及忏悔的节日)。约公元前八世纪与前二世纪之间,罗马历的起始月由March改为January。公元前45年的儒略历改并没有更改月序,但是为了纪念儒略‧凯撒(Julius Ceasar)和罗马帝国开国君主奥古斯都‧凯撒(Augustus Ceasar),将其中两个月份改用他们的名字:公元前44年Quintilis更名为July(儒略月)、前8年Sextilis更名为August(奥古斯都月),变成了今天的月名。</p><p>虽然January第一日在罗马历很早就定为一年之始,但是某些欧洲国家虽然后来也采用儒略历或格里历,可能因各地传统不同他们以前不一定取January首日为年首。例如某国家以前可能以March的第一日作为年首,另一国家以前或以March的第25日(接近春分日)为年首,又另一国以前或以December的第25日(接近冬至)为年首等。史学家有时会用双重纪年纪日来记事,例如"10/20 February 1661/62"表示日期是February的第十日(儒略历)或February的第二十日(格里历),年份是1661年或1662年,视乎用何日为年首。这情况类似中国的分裂时代,各政权各自颁历,因此年首和日期也不尽相同。所以用统一的纪年纪日对研究历史很有用,本网站的公历依惯例一律以January第一日为年首,月份的英文名一律用现在通行的月名,中文一律译为1月、2月、3月……12月,为避免混淆,这里的公历月名用阿拉伯数字,中历月名则用汉字。如前述,1582年10月15日起用格里历,公元8年至1582年10月4日用儒略历,8年前则用逆推儒略历(proleptic Julian calendar)。</p><p>据说很多华人以西方月名来译农历的月名,例如以June来译农历六月,使一些西方人士感到困惑,不知道是在说公历的月份还是农历的月份。这样的译法,就像用「正月」来译公历的January、「冬月」译November、「腊月」译December等,并不足取,所以本网站不采用这拙劣译法。</p></li></ol><br><sect id="southernming">南 明 及 明 郑 (1645年 – 1683年)</sect><p>南明及明郑的历日根据傅以礼《残明大统历》(收录在《二十五史补编》中)的资料,但是永历二十五年正月朔根据明郑颁行的<a href="N1671_Zheng_simp.html">永历二十五年大统历</a>订正、永历三十年历书冬至日期根据明郑颁行的<a href="N1676_Zheng_simp.html">永历三十年大统历</a>订正。在<a href="index_simp.html">年历网页</a>输入1645年至1661年的年份便会有按键选择南明的日历、输入1662年至1683年的年份便会有按键选择明郑的日历。<a href="table_simp.html">朔闰表网页</a>将明朝与南明及明郑的朔闰表放在同一网页,另有网页载有<a href="QingSouthernMingZheng_calendars_simp.html">清与南明及明郑朔闰异同表</a>。</p><p>南明及明郑的历日有几种不同版本,虽然都是根据明朝大统历推算,但是可以肯定算法与明朝钦天监编算的大统历算法稍有差异,而且不同版本有时也有差异。本网站将依明朝大统历推算的结果与《残明大统历》历日所有差异一一列出,其他有争议的历日也一一列出以供研究南明史学者参考,另有专文用历算角度探讨<a href="SouthernMingCalendar_simp.html">南明和明郑历法的朔闰</a>。</p><br><sect id="qinhan">秦 至 汉 初 (前221年 – 前104年)</sect><p>秦朝及汉初(公元前221年 – 前104年)的历法沿用颛顼历的月序。颛顼历是古六历之一,据说战国后期在秦国使用。颛顼历以建亥(即今天的十月)为年首,但仍称建亥为十月。月的数序是十月、十一月、十二月、正月、二月……九月,闰月置于年终,称为后九月。秦朝的历法与颛顼历稍有不同。汉朝建立后基本上沿用秦历,一百年间只作了少许修改,直到汉武帝太初元年(公元前104年)才颁行新历法,以建寅(正月)为年首,并把闰月置于无中气的月份,这使公元前104年的农历年有十五个农历月。秦朝为了避秦始皇名讳(正、政同音),把正月改称「端月」,到汉朝又改回正月。本网站没有跟从历史,在秦朝仍称建寅为正月。</p><p>本网站这时期的复原日历是根据李忠林在2012年发表的文章「秦至汉初(前246至前104)历法研究—以出土历简为中心」<sup><a href="computation_simp.html#Li12">李忠林</a></sup>。具体计算方法在<a href="QinHanCalendars_simp.html">秦与汉初历法网页</a>阐述。虽然复原历法有效年限估计是秦王政元年(公元前246年)前到汉武帝太初元年(公元前104年)五月,本网站<a href="index_simp.html">年历网页</a>从公元<span class="nowrap">-220</span>年(即前221年)起才用复原历法、<a href="table_simp.html">朔閏表网页</a>则从<span class="nowrap">N<sub>-220</sub></span>年(即秦始皇二十六年)起才用复原历法(<a href="index_simp.html">年历网页</a>以公历为主、<a href="table_simp.html">朔閏表网页</a>则以农历为主)。两网页都在汉武帝太初元年五月起改用《三千五百年历日天象》<sup><a href="computation_simp.html#Zhang97">张培瑜97</a></sup>的数据<sup><a href="computation_simp.html#fn5">注五</a></sup>。复原历法的太初元年三月是小月、四月是大月、五月是小月。改了历法后,五月朔提前了一天,使四月变成小月,而新历法的五月又是小月,于是出现了三、四、五三个相连小月,这在平朔法则是不可能的,只有在改历时才可能出现。如果在太初元年六月才改用太初历,就会使五月只有二十八日,这在平时也是不可能出现的。</p><br><sect id="warring">战 国 时 代 (前480年 – 前222年)</sect><p>战国时代各国施行不同历法,当时使用的历法有六种:周历、鲁历、殷历、夏历、黄帝历和颛顼历,合称「古六历」。六种历法的计算方法大致相同,但各历的年首不尽相同,用以计算历法的历元也不同。本网站在战国时代列出所有六部古六历,根据《中国古代历法》<sup><a href="computation_simp.html#ZCBH08">张陈薄胡</a></sup>书中第三章第六节所述的资料复原。具体计算方法在<a href="guliuli_simp.html">古六历网页</a>叙述。</p><p>夏历有两个版本,差别是计算历法时使用的历元不同。本网站的夏历在春秋时代和战国时代所用的版本不同,春秋时期用的夏历历元是雨水合朔齐同,战国时的夏历历元是冬至合朔齐同。</p><p>目前学界对于古六历的闰月位置未有一致意见。本网站假设闰月置于年终,称为闰月,不用注明闰几月。有些学者认为当时以无中气的月份为闰月,所以也注明无中气的月份以供参考。颛顼历较为特殊,以孟冬十月为年首,月序是十月、十一月、十二月、正月、二月……九月,闰月置于年终,称为后九月。</p><p>虽然干支纪年可能到东汉才流行,本网站的中历都载有干支纪年,<a href="index_simp.html">年历网页</a>和<a href="table_simp.html">朔閏表网页</a>在1912年前还附加帝王年号。在战国时代,周历附加东周君王的纪年,周朝于周赧王五十九年(公元前256年)被秦国所灭,东周君王的纪年也到这一年为止。鲁历附加鲁国君主的纪年,鲁国于鲁顷公二十四年(公元前249年)被楚国所灭,鲁国君主的纪年也到这一年为止。颛顼历大约在秦昭襄王时期(公元前306 – 前251)开始在秦国使用,颛顼历自公元前306起附加秦国君主纪年。</p><p>古六历在战国时期创制行用,但是当时的历法已经散失,今天我们只能从汉朝及以后的书藉得知古六历的资料。这些「汉传古六历」与战国时实际使用的古六历差异有多大仍未可知。</p><br><sect id="spring">春 秋 时 代 (前722年 – 前481年)</sect><p>春秋时期各国施行不同历法,现在我们只能从《春秋》这部由孔子修订的鲁国编年史书中获得当时鲁国施行历法的不完整资料。这里称当时鲁国的历法为春秋历,本网站的春秋历是根据《中国古代历法》<sup><a href="computation_simp.html#ZCBH08">张陈薄胡</a></sup>书中第三章第五节的资料复原。具体计算方法在<a href="chunqiu_simp.html">春秋历网页</a>阐述。</p><p>春秋历没有固定的置闰法则,正月的月建并不固定,而是在建亥(即现在的十月)与建寅(现在的正月)之间摆动。春秋初期的正月月建多在建丑(现在的十二月),末期则多在建子(现在的十一月)。目前学界对于春秋历的闰月的位置末有一致意见。本网站假设闰月置于年终,称为闰月,不用注明闰几月。春秋历没有计算冬至(或其他节气)的方法,当时的冬至是靠观测而定,所以没有历书节气。由于春秋历在鲁国使用,<a href="index_simp.html">年历网页</a>和<a href="table_simp.html">朔閏表网页</a>中附加鲁国的君主纪年。</p><p>除了春秋历外,本网站还提供周历、殷历和夏历(其中三部古六历)的资料。一般认为这三部历法应在春秋末期或战国时代才建立,把这三部历法在春秋时期列出仅供参考而已。如上一节所述,夏历有两个版本,本网站在春秋时期用的夏历历元是雨水合朔齐同。</p><br><hr><h2 id="references">备 注 和 参 考 文 献</h2><ul style="list-style-type:none"><li id="cook">[<span class="ref">Cook</span>] A. Cook, <a href="https://academic.oup.com/astrogeo/article/41/6/6.21/225623" target="_blank">"Success and failure in Newton's lunar theory"</a>, Astronomy & Geophysics, 41, 6.21-6.25 (2000)</li><li id="DE431">[<span class="ref">DE431</span>] W.M. Folkner et al, <a href="https://naif.jpl.nasa.gov/pub/naif/generic_kernels/spk/planets/de430_and_de431.pdf" target="_blank">"The Planetary and Lunar Ephemerides DE430 and DE431"</a>, IPN Progress Report 42-196, February 15, 2014.</li><li id="DE441">[<span class="ref">DE441</span>] R.S. Park et al, <a href="https://ui.adsabs.harvard.edu/abs/2021AJ....161..105P/abstract" target="_blank">"The Planetary and Lunar Ephemerides DE440 and DE441"</a>, The Astronomical Journal, 161, 105, 2021.</li><li id="fn1"><p>[<span class="ref">注一</span>] JPL 在2020年推出了 DE440 和 DE441 历表<sup><a href="computation_simp.html#DE441">DE441</a></sup>取代 DE430 和 DE431 历表。比较 DE431 和 DE441 算出的月相和节气的 TDB 时刻,发现两者在近几个世纪差异甚微,在远古和遥远将来虽然差异较大,但仍未超出 TDB 转换 UT1 的估计误差,所以这里仍用 DE431 算出的气朔时刻。</p></li><li id="kuomin"><p>[<span class="ref">注二</span>] <a href="rules_simp.html#newStandard">农历法则网页</a>提到《国民历》没有登载农历日期,但有载朔、上弦、望、下弦和二十四节气的日期和时刻。那两本书在这段期间的农历应是根据这些日期和农历的编算规则重编农历。</p></li><li id="fn3"><p>[<span class="ref">注三</span>] 天文计算的惯例是在1582年10月15日起改用格里历,之前用儒略历,公元8年前则用逆推儒略历(<a href="https://en.wikipedia.org/wiki/Proleptic_Julian_calendar" target="_blank">proleptic Julian calendar</a>),但这规则并不是在各领域都会遵从,计算机软件就是一例。有些软件在1582年前仍用格里历,谓之逆推格里历(<a href="https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar" target="_blank">proleptic Gregorian calendar</a>)。 Unix/Linux 的 <var>cal</var> 函数尤其古怪,在儒略历1752年9月2日的次日才改用格里历,这是大英帝国及其殖民地改用格里历的日期,其时儒略历与格里历已有十一日偏差。在 Unix/Linux/MacOS terminal 执行 <var>cal 1752</var> 指令,便会发现9月2日的次日是9月14日。</p></li><li id="fn4"><p>[<span class="ref">注四</span>] 由于采用定气后可出现一个月内有两个中气的现象,以致可以多出了一个无中气月,称之为「跨限」,因跨限而生的无中气月不置闰。清初的做法以无中气月为闰月,如果在几个月内有两个无中气月,则似乎以「闰前不闰后」的原则以最先出现的无中气月为闰月。但是到了嘉庆十八年(<span class="nowrap">N<sub>1813</sub></span>)出现了新的问题,当时出现七个月内有两个无中气月的情况,钦天监以「闰前不闰后」的原则预编嘉庆十八年闰八月,但这会使当年冬至在十月三十日,出现了南郊大祀不在仲冬之月不合传统的情况,于是嘉庆帝命钦天监再三详细通查,最后钦天监历官不再坚持「闰前不闰后」,改嘉庆十八年闰八月为嘉庆十九年闰二月(<a href="https://www.zhonghuadiancang.com/lishizhuanji/daqingrenzongruihuangdishilu/96849.html" target="_blank">《清仁宗睿皇帝实录‧卷二百四十二》</a><sup><a href="computation_simp.html#vert1811">实录原文</a></sup>)。所以将冬至定在十一月比「闰前不闰后」的原则更重要,要以「前后两年有冬至之月为准」,中积十三月者,才以「闰前不闰后」的法则置闰。将冬至定在十一月后,嘉庆十七月冬至月与十八年冬至月之间只有十二个月,所以即使其中的九月没有中气也不置闰,而嘉庆十八月冬至月与十九年冬至月之间有十三个月,应当置闰,当中只有一无中气月在二月后,因此将之定为闰二月。《清史稿》的闰月法则应是在嘉庆十八年的事件后才确定的,虽然如此,我用其法则及时宪历算出的合朔和中气时刻编历,得出的历日符合清朝由顺治三年至宣统三年266年间的实历,顺治二年的闰六月是唯一不符合《清史稿》法则的闰月。其实那266年间只出现了八次在几个月内有两个无中气月的情况,嘉庆十八年的罕见现象只出现一次,清亡后至今(2024年)仍未再出现,下次会出现在<span class="nowrap">N<sub>2033</sub></span>(癸丑年)。</p></li><li id="fn5"><p>[<span class="ref">注五</span>] 《三千五百年历日天象》自汉武帝太初元年正月起采用新历法;从秦始皇三十一年(<span class="nowrap">N<sub>-215</sub></span>)十月到太初元年十二月采用作者根据《元光元年历谱》复原的历法<sup><a href="computation_simp.html#Zhang1978">张培瑜78</a></sup>;从秦始皇二十六年(<span class="nowrap">N<sub>-220</sub></span>)十月到秦始皇三十年(<span class="nowrap">N<sub>-216</sub></span>)九月用颛顼历。《三千五百年历日天象》并没有说明这些细节,以上结论是比较书中历表和张培瑜的另一本书《中国先秦史历表》<sup><a href="computation_simp.html#xZhang1987">张培瑜87</a></sup>中的历表推断的。《三千五百年历日天象》载太初元年十二月和正月连续两月皆是小月,这在平朔法是不可能的,显然是正月改历的结果。</p></li><li id="GBT33661"><p>[<span class="ref">国标</span>] <a href="http://www.nongli.net/cn/11028.html" target="_blank">《农历的编算和颁行》 修订稿</a> (2017年6月28日), 中华人民共和国国家质量监督检验检疫总局 及 中国国家标准化管理委员会 联合发布, 中国科学院紫金山天文台草拟;<br><a href="http://www.pmo.cas.cn/xwdt2019/kpdt2019/202203/P020240201504886119982.pdf" target="_blank">"国家标准《农历的编算和颁行》解读材料"</a>, 中国科学院紫金山天文台。</p></li><li id="iers2010">[<span class="ref">IERS10</span>] <a href="https://www.iers.org/IERS/EN/Publications/TechnicalNotes/tn36.html" target="_blank">IERS Conventions (2010)</a></li><li id="kaplan05">[<span class="ref">Kaplan</span>] G.H. Kaplan, <a href="https://arxiv.org/abs/astro-ph/0602086" target="_blank">"The IAU Resolutions on Astronomical Reference Systems, Time Scales, and Earth Rotation Models"</a>, U.S. Naval Observatory Circular No. 179, U.S. Naval Observatory, Washington, D.C. 20392 (2005).</li><li id="kollerstrom">[<span class="ref">Kollerstrom</span>] N. Kollerstrom, <i>Newton's Forgotten Lunar Theory: his Contribution to the Quest for Longitude</i>, Green Lion Press, USA (2000)</li><li id="pmo86"><p>[<span class="ref">新编万年历</span>] 《新编万年历(修定本)》, 中国科学院紫金山天文台编, 科学普及出版社出版(1986)。</p></li><li id="Li12"><p>[<span class="ref">李忠林</span>] 李忠林,"秦至汉初(前246至前104)历法研究—以出土历简为中心",《中国史研究》,2012年第二期,第17–69页。</p></li><li id="liu93"><p>[<span class="ref">刘宝琳</span>] 刘宝琳,《100年袖珍干支月曆》, 商务印书馆(香港), 1993.</p></li><li id="sm2016"><p>[<span class="ref">SM16</span>] F.R. Stephenson, L.V. Morrison, and C.Y. Hohenkerk, <a href="https://royalsocietypublishing.org/doi/10.1098/rspa.2016.0404" target="_blank">Measurement of the Earth's rotation: 720 BC to AD 2015</a>, Proc. R. Soc. A., 472:20160404 (2016); L.V. Morrison, F.R. Stephenson, C.Y. Hohenkerk, and M. Zawilski, <a href="https://royalsocietypublishing.org/doi/10.1098/rspa.2020.0776" target="_blank">Addendum 2020 to 'Measurement of the Earth's rotation: 720 BC to AD 2015'</a>, Proc. R. Soc. A., 477:20200776 (2021). <a href="http://astro.ukho.gov.uk/nao/lvm/" target="_blank">HMNAO Earth rotation 网页</a>总结了他们的研究成果。</p></li><li id="vert1811"><p>[<span class="ref">实录原文</span>] 《清仁宗睿皇帝实录‧卷二四二》记载的改闰月事件原文如下:</p><blockquote><p>(嘉庆十六年四月庚午,内阁奉上谕。)</p><p>前据管理钦天监事务定亲王绵恩等奏,查得嘉庆十八年癸酉时宪书系闰八月。是年冬至在十月内,为向来所未有,亦复查得十九年三月亦无中气可以置闰,应否改为十九年闰二月等语。朕思置闰,自有一定,非可轻言更易,恐该监推步之处或有舛错,因降旨交绵恩等再详细通查。兹据奏称,溯查康熙十九年、五十七年俱闰八月,是年冬至仍在十一月,与郊祀节气均相符合。今嘉庆十八年闰八月,冬至在十月内,则南郊大祀不在仲冬之月,而次年上丁上戊又皆在正月,不在仲春之月,且惊蛰春分皆在正月,亦觉较早,若改为十九年闰二月,则与一切祭祀节气,均属相符,复将以后推算至两百年,其每年节气以及置闰之月,俱与时宪无讹等语。定时成岁,所以顺天行而厘庶绩,南郊大祀,应在仲冬之月,上丁上戊,应在仲春之月,此外一切时令节气,皆有常则。今据该监上考下推,直至两百年之远,必须改于嘉庆十九年二月置闰,始能前后脗合,实为详慎无讹,自应照此更正。至该监此次推算,据称系时宪科五官正王嵩龄、何元泰、陈恕、何元海四员,将十八年时宪书与万年书校出之后,向该堂官告知,复行详察具奏等语。王嵩龄等四员俱着施恩,各加二级,其管理监务之定亲王绵恩着施恩,纪录两次,监正额尔登布福文高、监副吉宁、陈伦、李拱宸、高守谦俱着施恩,各加一级。至从前何以于嘉庆十八年八月率行置闰,彼时职司推步者,实有错误,着该监查明如其人尚在,应奏闻后旨治罪。</p></blockquote></li><li id="vondrak11"><p>[<span class="ref">Vondrák</span>] J. Vondrák, N. Capitaine, P. Wallace, <a href="https://ui.adsabs.harvard.edu/abs/2011A%26A...534A..22V/abstract" target="_blank">"New precession expressions, valid for long time intervals"</a>, Astron. Astrophys., 534, A22 (2011).</p></li><li id="xiaoan"><p>[<span class="ref">晓庵新法</span>] 当时有不少学者极力反对用定气注历和置闰,其中最著明的两位是王锡阐和梅文鼎。王锡阐在其<a href="https://cnkgraph.com/Book/%E5%AD%90%E9%83%A8/%E5%A4%A9%E6%96%87%E7%AE%97%E6%B3%95%E9%A1%9E/%E6%9B%89%E8%8F%B4%E6%96%B0%E6%B3%95/1318" target="_blank">《晓庵新法》</a>的自序中不但非议用定气来置闰,还指出钦天监为了避免给人留下话柄,改了康熙元年的正月朔日期:</p><blockquote><p>上古置闰恒于岁终,盖历术疏阔计岁以置闰也。中古法日趋密,始计月以置闰而闰于积终,故举中气以定月,而月无中气者即加闰。《大统》专用平气,置闰必得其月,新法改用定气,致一月有两中气之时,一岁有两可闰之月,若辛丑西历者不亦盭乎! 夫月无平中气者,乃为积余之终,无定中气者,非其月也,不能虚衷深考,而以卤莽之习,侈支离之学,是以归余之后,气尚在晦,季冬中气已入仲冬,首春中气将归腊杪,不得已而退朔一日以塞人望,亦见其技之穷矣!</p></blockquote><p>文中说的「辛丑西历」指顺治十八年(<span class="nowrap">N<sub>1661</sub></span>)的时宪历。那年闰七月,其后的十一月有两个中气冬至和大寒,中气雨水原先定在十二月三十日(即引文说的首春中气将归腊杪),以致次年(康熙元年)正月没有中气。为免遭人非议,钦天监「不得已退朔一日」,即将正月朔提前一日,使正月含雨水,十二月变成无中气月。查台湾国立故宫博物院的<a href="https://qingarchives.npm.edu.tw/index.php" target="_blank">清代档案检索系统</a>收藏的《大清康熙元年七政经纬躔度时宪历》,得知虽然历书所载正月朔在乙亥日(公元1662年2月18日),但从其所载的日月位置显示合朔当在丙子日(2月19日),证实了王锡阐所言非虚。但是如此犯规操作也仅此一次,以后清朝日历有另外七次出现几个月内两无中气的情况,却不见人为调动历日,其中道光十三年正月的情况与本来的康熙元年完全一样:雨水出现在道光十二年十二月三十,道光十三年正月无中气,但当时没有将正月朔提前一日。清亡后<span class="nowrap">N<sub>1985</sub></span>(乙丑年)的正月也一样没有中气,将来的<span class="nowrap">N<sub>2034</sub></span>(甲寅年)正月也是如此。</p><p>纵观定气注历的争议,其历史发展与用定朔注历的情况相似。南北朝时何承天首先主张用定朔注历,但因频繁出现三个连大月与两个连小月的现象,当时遭受强烈反对而未有实行。后来唐朝的戊寅元历打破传统,实行了定朔注历,却在贞观十九年(645年)出现四个连大月而受到攻击,复用平朔注历。约二十年后李淳风创立《麟德历》,再次用定朔注历,但为了避免定朔法再受攻击,引入了进朔法,减少了多个连大月和连小月的出现,进朔法在五代、两宋和辽金的历法都采用,到元朝《授时历》才废除,到了那时候,没有人再非议四个连大月和三个连小月了,现代甚至有人不知道农历有时会出现四个连大月。定气注历虽然已行用了近四百年,但到现在还有人非议,主张复用平气,但论者却没有主张复用平朔。</p></li><li id="Zhang1978"><p>[<span class="ref">张培瑜78</span>] 张培瑜, "汉初历法讨论",《中国天文学史文集》,科学出版社(北京),1978年四月,第82–94页。</p></li><li id="Zhang1987"><p>[<span class="ref">张培瑜87</span>] 张培瑜,《中国先秦史历表》,齐鲁书社(济南),1987年6月。</p></li><li id="Zhang97"><p>[<span class="ref">张培瑜97</span>] 张培瑜,《三千五百年历日天象》,大象出版社,1997年7月。</p></li><li id="ZCBH08"><p>[<span class="ref">张陈薄胡</span>] 张培瑜、陈美东、薄树人和胡铁珠,《中国古代历法》,中国科学出版社(北京),2008年3月。</p></li><li id="Zheng1936"><p>[<span class="ref">郑鹤声</span>] 郑鹤声,《近世中西史日对照表》,商务印书馆,1936年; 1981年北京中华书局重印。</p></li></ul><br></div><br><br></body></html>