分享

略谈汤若望和农历

 喜欢站在山上 2021-10-07

注:原创非首发

中国自民国元年(1912年)之后开始通用公历,原有的中国历法退出官方历法舞台,但民国新设的紫金山天文台等天文机构仍然在继续推算传统中国历法(后改称农历,但其实还是叫中国历法比较合适),以方便民间使用。目前,在现实生活中,农历主要是用来确定某些传统节日的日期、农村地区集市贸易时间等,部分地区和特定群体还借助官方颁布的农历历日,继续编纂用于择吉等占卜性质活动的历书等,但与通行的公历相比,农历已处于辅助地位。

之前在网上见到有人在讨论现行农历和明末清初汤若望等传教士的关系。起因大概是某政协委员提议恢复中国传统历法,大概是觉得现在使用公历“西化”过度了吧。但随后有人指出现行农历是汤若望制定的,反对者也提出了一些意见,争论非常激烈。但在我看来,网上争论的双方大多对争论的对象“农历”缺乏了解,在民族主义的狂热气氛中,争论变成了谩骂,最后成为一场闹剧,而真正的问题:即现行农历和汤若望等传教士之间的关系,却无法得到澄清。

本文中,我力图简单明了地展开论述,但由于历法问题本来就有点复杂,需要具备一定的天文学知识才容易理解,而且本人语言文字水平有限,也许有些地方写得较为晦涩,希望读者建议指正。下面先放出几个结论,后面再展开论述。:

1、农历的历史远早于汤若望,但汤若望制定的《时宪历》对农历的历法规则做了一次重大改变。

2、现行农历不是汤若望的《时宪历》,但继承了某些重要的原则。

3、汤若望是中国天文学“现代化”进程第一步的推动者之一。

一、汤若望对农历历日编排原则的改进。

中国的传统历法,源头可以追溯到殷墟卜辞中体现的某些历法知识,到汉武帝太初历之后基本形成阴阳合历、二十四节气等完备体系,此后历代不断改进,直至明末。总的来说,中历通过设置闰月来兼顾朔望月(月球圆缺周期,由地球公转和月球公转两种运动合成而成)和回归年(太阳视运动即地球绕日运动的周期[i])两种周期。在一个回归年中,又设立二十四节气。各节气的名称往往包含有气象学上的意义,一定程度上具有指导农时的意义。

在中国传统历法的观念中,朔日(初一日)应当是日月合朔(日月经度相同)[ii]所在的日期,冬至、夏至应当是正午日影最长和最短的日子,春分秋分应当是昼夜平均的日子。但是,由于朔望月(平均约29.53天)和回归年(约365.2422天)不存在简单的换算关系,且朔望月(上下可浮动半天以上)、回归年(存在缓慢长期变化)均不是均匀的周期,因此要想调和这两个周期,确保满足以上所说的这些条件,就不是那么容易了。偏偏在中国古代,对历法的精度又异常重视,为了满足以上条件,历代历算家不断追求更加严密的计算方法,因此中国从汉代到明代,历法改动有好几十次之多,但从单纯的历日编排的角度来说,主要是两次大的改动:

1、唐代戊寅元历从平朔改用定朔。

唐代以前的历法,是有周期性规律的。比如东汉四分历,就规定一年为365又1/4天(365.25),一个月为29又499/940日(29.53085),同时19年有7个闰月,历法推算的起点是汉文帝后元二年(BC162)十一月朔日(该日夜半时分日月合朔,且为冬至时刻,该日干支日名为甲子[iii])。在通过长期观测确定这些参数之后,历法推算就是算术计算了,举例来说:计算东汉永和六年(141年)的历日的顺序如下:

(1)先计算该年是否有闰月以及闰月的位置:

自后元三年(BC161)天正月(即前一年的十一月)至永和六年(141年)天正月共计经过了301年(161+140=301年)。

故总计经历了


       
上式右端的分子为所谓闰余,某年天正月前所积闰余只要大于12则本年即有闰月。由天正月开始,闰余每月积累7/228,当闰余超过1时,该月即为闰月。由于17/19+4×(7/228)>1,因此本年从天正月起的第四个月为闰月,即正月之后的那个月为闰月,即闰正月。

(2)计算各月朔日干支:

干支纪日是中国古代长期通行的一种纪日方法,周期为60,顺序如下所示:

 

由于天正朔日以前积3722整月,因此总积日数为:


而109913对60取余,得数为53. 即为所谓的大余,而778则是小余。本年天正月朔日的日名,在甲子表中列第54位。故本年天正(永和五年十一月)朔日(一日)干支为丁巳。

求此后各月朔日干支只需在大小余上分别累加29和499即可,大余满六十即除去,小余满940则进1入大余。而各月朔日的干支序数即为大余+1.从而得出各月朔日(初一日)如下:


 

推算节气也很简单,这时的历法都是平气,就是24节气是均匀排列的。前面可以知道,每两个冬至之间都相隔365又1/4日,因此从历法起点开始,可以很容易地推算出每年冬至日所在的时刻,而两个冬至之间的各节气时刻,只需依次累加1461/96日,看各节气落在哪一日即可。而二十四节气的顺序如下:


上面所说的这种历法计算方法,即所谓的平朔平气,计算比较简单,只要确定了朔望月和回归年周期,以及历法起点,用简单的算术方法便可排出所有的历谱。而且很显然,历法是有周期性的。以四分历来说,由于19年7闰,因此每19年,所包含的月数即为整数,是为一章。但19年所包含的日数却不为整数,每4章(76年)之后方为整数,是为一蔀。由于1蔀日数(27759)不是60的倍数,因此每过1蔀,蔀首日名不重复,需要经过20蔀(1520年),蔀首日名才得重复,是为一纪。但由于1520年不是60的公倍数,因此需要经过3纪(4560年)年名才得以重复,是为一元。

但是这种历法在很多时候和天象未必相符,在计算中采用平朔,即朔望月长度是固定值,由于月球和地球运动不均匀,朔望月长度上下浮动比较多,往往会出现合朔时刻不在初一日的情况。日食必然发生在合朔时,采用平朔来计算历法,会时常出现日食不在初一的情况。这在古代天文历算家看来,是不可接受的。因此在东汉刘洪发现月球运动不均匀性之后,到南北朝时期陆续有人提出应废除平朔,改用定朔来计算朔日。到唐初傅仁均戊寅元历,中国历法开始采用定朔法来计算每月的初一日。

定朔法的具体计算方法,由于比较繁复,而且各历法中又有所不同,此处就不具体展开了。但其原则很明确:即通过对太阳和月球具体位置的推算,来较为精确地确定合朔时刻,以力求确保合朔时刻落在初一日。只是在节气的计算上,依然沿用平气法,没有变动。

随着定朔法的使用,历法的周期性被打破了。原来那种规定多少年里有几个闰月的闰周制度(起初为19年7闰,后祖冲之改进为391年144闰)也没有了意义,因此从李淳风麟德历之后也被废除了。即伴随着定朔法的使用,中国农历的置闰方法也从闰周制改成了“无中置闰”法。可以说,唐初采用定朔法,是中国古代历法发展史上的一次重大原则性变革。

2、汤若望改平气为定气。

   中国历法发展到元代郭守敬的授时历,达到了一个发展高峰,明代的大统历,实际基本就是授时历,一直沿用到明末。授时历重实测,利用一系列新型天文仪器重新测定了一系列的天文常数,并利用招差法(高次多项式内插法)、弧矢割圆术(球面几何的代数近似算法)等较为复杂精确的计算方法,精度较前代历法有明显提高。不过,授时历在历表排列上和唐宋时期的历法并没有太大区别,依然是采用定朔平气注历。具体来说,是采用以下方法来确定节气时刻的:

1)授时历的推算起点为至元辛巳年(1281年)

2)先计算出所求年的天正冬至(即上一年的冬至,因正月是雨水这个节气所在的那个月,而历法推算却以冬至为起点),具体计算方法就是用相差的年数乘以回归年(岁实)长度365.2425日。得到天正冬至的具体日期。

3)然后从冬至开始,累加气策(即节气间隔)15.2184375日,即回归年长度的1/24,即可求得各节气的时刻。

假如太阳是均匀运行的话,那么冬至必然日影最长,夜最长,而夏至日影最短,昼最长,春秋分恰好昼夜平均。但是,由于地球绕太阳的轨道是椭圆,从地球上看来,太阳的运动并不均匀,当地球过近日点时,太阳运动最快,地球过远日点时,太阳运动最慢。中国历法早就明白太阳运行不均匀的问题,并且在日食计算、合朔时刻计算中采用了各种形式的修正算法,但是在节气时刻计算上,却一直采用平气(即直接累加回归年长度的1/24来计算节气时刻)。由于历法起点是冬至,冬至日基本能满足日影最长,昼最短夜最长的要求,但春秋分时昼夜平均几乎注定无法满足,一般要相差两日左右。授时历、大统历中甚至出现了在历书中除注明春秋分之日之外,还另行注出昼夜平均之日的情况。

明末西方传教士航海东来,将西欧的天文学知识传入中国。当时,明朝使用的大统历沿用近三百年未曾修改,在许多精密天象的推算上已经有明显的偏差。徐光启等奉教士大夫,在跟随利玛窦等人学习了西方天文学知识后,提议用西法来改革历算。当然,前面所说的春分秋分日昼夜不平均的问题,并不算大问题。徐光启看重的,主要有两点,一是西法在宇宙理论即解释天象上的能力:“臣等昔年曾遇西洋利玛窦,与之讲论天地原始,七政运行,并及其形体大小远近,与夫度数之顺逆迟疾,一一从其所以然处,指示确然不易之理,较我中国往籍,多所未闻。”二是西法在日食等精密天象上的推算要更为准确:“臣等自后每闻交食,即以其法验之,与该监所推算,不无异同,而大率与天相合”[iv]。后来在修历过程中,徐光启等人主持了中法和西法在日月食、行星运动上的8次公开较量,西法全部获胜。


徐光启与利玛窦

在徐光启力推下,以及耶稣会内部借助科学知识打开上层路线,推动传教的考虑下,汤若望、罗雅谷等人来到北京,开始和徐光启等人合力翻译历书,制定历法。此次改历的过程,即徐光启所说的“取彼方之材质,入大统之型模”,吸取西方天文学的计算方法和部分概念,但中国传统历法的框架依然保留。后来虽然新历未及颁行明朝就已灭亡,但汤若望又将新历献给入主中原的满清王朝,即所谓的《时宪历》,通行于天下,直到清朝灭亡。

 
时宪历书

 在宇宙理论、推算精度等方面,西法胜过当时的中法很多,这也是西法最终能取代中法的原因。但和民间日用关系紧密的历日编排上,汤若望修改了节气的推算方法,改平气为定气,带来了一些新的问题,引起了不小的争议。

前面已经说过,授时历等传统历法中节气的推算为平气,这样的好处是计算非常简便,缺点就是春秋分时昼夜并不平均,需要额外注明昼夜平均之日,一般与历书上的春分秋分日相差两天左右。为此汤若望改用定气:将黄道上的周天度数等分成二十四份,太阳移至某一分点时,即定为某一节气,由于太阳的视运动迟速不均,因此各节气间相隔的时间亦不等,这样的好处便是春分秋分日昼夜平均,但一个直接的问题就是,太阳精确位置的计算比较复杂,《时宪历》采用的是一个由三重圆周运动构成的几何模型,对不懂三角函数和平面几何的人来说,根本无法计算。

但更根本的问题在于,定气注历下,原有的置闰规则即无中置闰法(二十四节气中有十二个为中气,分别对应十二个月,如果推算出的某个月中没有中气,那么这个月便为闰月)便已经无法使用。因为在定气注历的情况下,有时会出现一月三节气的情况,比如顺治十八年十一月份含冬至、小寒、大寒等三节气,其中有两个中气(冬至,十一月对应的中气,大寒,十二月对应的中气),同时也有可能出现一年之内有两个月都没有中气,但又显然不能在一年之内设两个闰月。这与中国历法上千年的传统大为不同,让很多人心生疑窦。为此,汤若望等人虽然屡次强调定气为天上“真节气”,如汤若望强调:“臣按:《新法历书》每年节气依太阳实行推算,夏至日行迟,间有一月一节气者;冬至日行疾,间有一月三节气者。今顺治十八年民历式样告成,十一月系三节气,与顺治三年同,此为天上真节气,非旧法平节气可同日语也”。但汤若望并没有很好地解决这一问题。

《清史稿·时宪》中虽然规定:求闰月时,首先确定各年冬至的时刻,冬至所在的月为十一月(定冬至法),如果这两个十一月之间只能安插进十一个月,那么不设闰月。如果能排进十二个月(即所谓的中积十三月),那么这一年有闰月,而且没有中气的月是闰月。如果一年中有两个月都没有中气,取前一个月做闰月。但《清史稿》修成于民国时期,此处当时置闰规则稳定后的形成的通例,实则从明末到清前期的记载来看,具体操作中还是有不少问题。

 
崇祯历书

 最开始的崇祯历书/时宪历推算中,采用过看合朔时刻和节气时刻的先后来确定是否闰月。即李天经所说的“新法尤视合朔后先。今所进十五年新历,其十月、十二月中气适交次月合朔时刻之前,所以月内虽无中气,而实非闰月。盖气在朔前,则此气尚属前月之晦也”[v]。但这种做法也有其他的问题,比如顺治二年五月二十八日( 己酉,西历6月21日) 夏至,七月三日( 壬子,西历8月23日) 为处暑,中间间隔两个月,但只有一个中气大暑(六月对应的中气),这个中气恰好落在第二个月的朔日(西历7月23日),究竟选择哪个月来做闰月呢?时宪历选择了以前一个月为六月,后一个月为闰六月,而这样一来,六月没有中气,而闰月竟然成了有中气的月。原因在于,时宪历认为大暑虽然落在初一日,但大暑的具体时刻比日月合朔的时刻早,因此大暑还算处在上个月内。但这与此前盛行已久的无中置闰法完全抵触,显然难以让人理解。

而且前面所说的固定冬至所在的月为十一月的做法(定冬至法)似乎也没有被完全贯彻,比如嘉庆十八年,从上年冬至到本年冬至之间,钦天监主张置闰八月,但这样以来,该年冬至便落在了十月,与传统上十一月冬至,举行郊祀大典的传统不合,为此经过反复考虑后,改为当年不置闰,将闰月置于嘉庆十九年二月来解决。总之,从上面举的两个例子来看,时宪历在清朝中期之前并没有解决好置闰规则问题,更由于其做法与传统相差过大,而引起了不小的争议。

在清初的历狱事件中,杨光先指摘的传教士们的几项罪名要么是无稽之谈,要么是杨光先不懂历法,胡乱比附。唯独指摘新法中因定气注历导致的一月三节气、一年中两个月可闰等现象算是抓到了问题所在。其实,按照清初历算大师梅文鼎的看法,西洋传教士们本来没必要通过强调平气的缺陷来凸显自己的高明,当时西方的天算之学优于中国之处甚多,在这个细节上改得过于轻率,又没有很好的解决随之而来的问题,反而带来了不小的麻烦。汤若望在历狱事件中被下狱,险些被处死,主要原因当然是朝廷内的政治斗争和天算届保守派的反扑,但不得不说汤若望在这个问题上给了对手以一定的口实。


梅文鼎认为平气注历更为合适,但主张兼用定气

3、小结:

最后,再总结一下中国历法史上在历日编排上几个阶段的突出特点:

时代

朔日推算

节气推算

置闰规则

先秦

平朔?

二十四节气尚未完全成型

可能有闰周制

秦汉至隋唐

平朔

平气

闰周制(起初为十九年七闰,后祖冲之改为391年144闰)

唐至明

定朔

平气

无中置闰法

清代以后

定朔

定气

定冬至法

二、现行农历和汤若望的关系

现行农历究竟和汤若望的时宪历是什么关系?在回答这个问题之前,首先要明白现行农历是怎么来的。前面提到,清朝的官方历法是汤若望的时宪历,后来到雍正时期,又借鉴西方的开普勒定律,采用椭圆轨道来更为准确地计算太阳位置,修订形成所谓的癸卯元历。这一历法一直沿用到清朝灭亡。民国建立之后,官方历法采用西历,民间仍然沿用清代钦天监预推的历书。到1914年,民国政府的中央观象台在高鲁的领导下,开始颁行新编天文夏历(在民国时期,中国传统历法逐渐被改称夏历,新中国建国后逐渐又改称农历),最主要的是全面改革了历法的天文系统,废除了时宪历依据的第谷宇宙模型和天文常数,采用了当时国际上比较流行的纽康太阳表和汉森月亮表来推算日月位置(实践中往往采用直接改编国外天文年历的方法来推算),并明确以北京的地方时来推算历法。南京国民政府成立后,1929年建立了中研院天文研究所(后来建立紫金山天文台),重新采用了东经120度地方时(即东八区的区时)来推算历法。新中国建立后,紫金山天文台依然继续承担了推算农历的使命,只是其天文常数和依据的计算方法,都随时更新。从清中期以后,置闰方法也逐渐澄清。现行农历的置闰方法,就是前面所说的定冬至法,规定冬至所在的月固定为十一月,在两个冬至之间,若可以置闰,则以第一个不包含中气日的月为闰月,不考虑李天经提到的“视合朔后先”的情况,除了冬至之外,也不考虑中气和月份的对应情况。以后若有机会,再具体讨论一下定气置闰的问题吧,这里就不再赘述。




高鲁:中国现代天文事业的开创者

从时宪历到当今紫金山天文台颁行的农历,在气朔规则上都采用了定朔和定气规则,而这一规则始于汤若望的《时宪历》,因此从这个意义上说,汤若望采用定气,尽管在当时产生了不少的争议,但其影响却一直持续到今天。只是,时宪历的天文常数、宇宙模型等理论基础,却早已被更新过几次,甚至是发生了翻天覆地的变化。从中国古代的情况来看,天文常数改变,计算起点改变,或者某些计算方法上进行了改进,都可以被视为改历。因此,现行农历和汤若望的时宪历,当然不是同一种历法,它们之间的关系,更类似郭守敬的时宪历和李淳风的麟德历这两种历法,只是继承了某些原则而已。

当然,历法只是天文学的一小部分而已。对汤若望改平气为定气的做法,或许还有人持不同意见,但汤若望对中国天文学的推动作用,是毋庸置疑的。在汤若望等制定《时宪历》的过程中,引入了西方的地球观念和第谷的几何模型,形成了较为完备的理论和实践体系;引入了西方的几何学计算方法;引入了西方天文学中的不少新成就和新发现,比如望远镜等测算工具,蒙气差、视差等天文概念,伽利略的新天文发现等。在伽利略、牛顿之前,可以说世界各地都只有科学的萌芽,而没有真正的、成体系的科学。在汤若望等人改历时,西方正孕育着新的现代科学,现代天文学的基础已经奠定。汤若望等耶稣会传教士,将当时西方的部分知识传入中国,使中国的传统天学与当时西方的天文学接轨,引入了现代天文学的部分概念和初步的成就,可以说是中国天文学“现代化”进程第一步的推动者之一。但遗憾的是,当此后不久现代天文学最终在欧洲产生时,中国并未能跟上发展的脚步,中国天文学现代化进程的重新开启,要等到19世纪中期李善兰翻译《谈天》了,这其中的原因很复杂,但这绝非汤若望等传教士的责任。

参考资料:

1、明史·历志

2、清史稿·时宪

3、崇祯历书

4、徐光启集

5、张培瑜《中国古代历法》

6、刘洪涛《古代历法计算法》

7、冯立升主编《畴人传合编校注》

8、陈遵妫《中国天文学史》

9、黄一农《从汤若望所编民历试析清初中欧文化的冲突与妥协》

10、王广超《明清之际定气注历之转变》

11、陈展云《《旧历改用定气后在置闰上出现的问题》


[i]由于存在岁差现象,回归年与地球绕日运动的真正周期(恒星年)之间存在微小差异。

[ii]现代意义中指的是黄经相同,但中国传统历法中的“黄道度”与现代的黄经概念有所不同。

[iii]关于“夜半朔旦冬至”的意义,似有不同看法,此处暂且采用刘洪涛《古代历法计算法》中的观点。

[iv]徐光启《修改历法请访用汤若望罗雅谷疏》,崇祯三年五月十六日

[v]明史·历志

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多