自己动手,验证一下杨伯峻先生的一条注释!

春秋右传读过去 2024-08-17 03:04:53

进入鲁僖公六年,《春秋》第一句话就是“六年春,王正月”。在这六个字之后,“春天”无事,就直接转入到了夏天的相关记载。关于这六个字,杨伯峻先生注释道:正月十三日乙未冬至,建子。也就是说,这年鲁国的正月十三日是冬至。而上一年,冬至是正月初一,即鲁僖公五年的冬至日是正月初一,辛亥朔。

关于杨伯峻先生的上述注释,本文将进行一次推算,从而深入了解古代历法及其天干地支的应用。前文我们曾经说过,鲁僖公五年,鲁国历法进行了改革,采用了周历,即所谓的“建子”。建子就是以冬至之后的这个月作为一年的岁首,也就是周历的“王正月”。在鲁国,岁首也许并不是“正月”。按道理,只有“王正月”之后,王政颁发,诸侯接受,方可开启自己的“正月”。正月者,政月也。但为了统一口径,笔者在本文将把鲁国的正月初一与周王室的正月初一划上等号。

1.鲁国的正月初一

那么,从周历的角度看,鲁僖公六年的第一个月是春天吗?按照现行公历,鲁国的正月初一会是公历的几月几日?

首先,可以明确地说,按照建子的历法,岁首的第一个月肯定是没有到立春的时候。因为从现行的二十四节气看,冬至到立春,最少要经过小寒、大寒两个节气,才能到立春这个标志着春季到来的日期。所以,无论如何,周历的第一个月都不是春天。这说明,《春秋》这里的“春,王正月”与真正的立春节气没有关系,而只是一年开始的象征。

那么鲁僖公六年的正月一日,究竟是在冬至之前,还是冬至之后?这就要参考鲁僖公五年的两条记载。第一条是灭虢的记载日期,即“冬十二月丙子朔”。第二条是鲁僖公五年鲁国发生全日食的确切记载。即“九月戊申朔,日有食之。”这一天是公元前655年的8月19日。

朔日、日食

首先,假设第二条的记载,即“九月戊申朔”这个与日食相关的“戊申”日期记载是正确的,以此来推算“冬十二月丙子朔”的记载是否确切,即验证一下鲁历十二月初一记载的准确性。

我们知道,从阴历的九月初一到十二月初一,期间要经过两个小月和一个大月,即小月九月、十一月,大月是十月,共计88天。由于天干地支循环一周是60天,经过88天的时间,从九月戊申日开始数88天,对应的天干地支就是“丙子”,而这一天的确是一个朔日。按照天文推算,这次朔日的日期是公元前655年11月16日凌晨。由此可见,“冬十二月丙子朔”的记载是正确的。

按照杜预《春秋长历》,这年的十二月是大月,即30 天。如此,由十二月初一日是丙子日得出,下个月的初一日就是“丙午”日。丙午日,也就是即鲁僖公六年的一月初一日。这与《春秋长历》中的推算是一致的。

同样,以九月初一日的日食日为基准,经过九月29天、十月30天、十一月29天,十二月30天,共118天,对应公历日期就是公元前655年的12月15日。

按照杨伯峻先生的注释,这一年的冬至日是正月十三日乙未,从12月15日往后加12天,即是公历的12月27日。这个时间与现代的冬至日是有差距的。现在公历的冬至日一般是12月21日或22日,晚了5到6天。

这样问题就来了,即这个注释究竟对不对呢?

2.鲁僖公五年的冬至日

要弄清楚上述问题,得首先弄清楚鲁僖公五年的“日南至”是公历的那一天。知道了“日南至”的公历时间,就可以通过冬至的周期,即太阳的回归年来证明鲁僖公六年的冬至日是哪一天。

为了解决这个问题,需要对周历九月份以前的每个月做一个定量分析。首先需要根据历史记载的干支日期来确定基准,比如鲁僖公五年《左传》记载的“王正月辛亥朔,日南至”,以及《春秋》记载的“九月戊申朔,日有食之。”这两条记载,是天文记载,准确度应该很高,尤其后一条,经过了天文验证。

其次,要确定每个月的初一日,即每个月朔日的具体干支,以及与此相关的大月、小月之分。这个可参考晋人杜预的《春秋长历》。

第三,按照天文软件,在参照阴历大、小月的同时,参照公历日期,以确定每个阴历月初一日对应的公历日期。

第四,按照天文软件推算,公历公元前655年是一个闰年,即2月份是29天。

具体可以做出下表,以资参考:

周历月份

春秋长历大小月

周历本月

日历数

春秋长历初一日干支

朔日天文对应公历时间

与上月公历日期间隔数天数

9月

小月

29

戊申

8月19日20:00

8月

大月

30

戊寅

7月20日

0:00

30

7月

小月

29

乙酉

6月22日

2:00

29

6月

大月

30

乙卯

5月23日

7:00

30

5月

小月

29

庚戌

4月24日

4:00

29

4月

大月

30

庚辰

3月25日

7:00

30

3月

小月

29

辛亥

2月24日

7:00

29

2月

大月

30

辛巳

1月25日(公历闰月)

7:00

30

1月

大月

30

辛亥

12月26日

17:00

30

九月一日前累计日历数

237

237

通过上表,可以得出以下结论:

1、古人观察朔日,还是比较认真的,也是比较准确的。

2、从公历来看,从上一年的12月26日,即“日南至”之日,到公元前655年的8月19日鲁国曲阜地区观察到全日食,期间共计237天(包括12月26日)。

3、通过天文软件观察,这期间的朔日及其干支的对应关系与杜预《春秋长历》所给定的日期完全吻合。

4、根据推算,鲁僖公五年的“日南至”这一天,也就是冬至这一天,是公历的公元前656年的12月26日。

5、根据上述时间,从鲁僖公五年的正月初一到鲁僖公六年的正月初一,共计237+118天,即355天。这是一个完整年。

5、周历鲁僖公五年,应该没有设置闰月。

6、鲁僖公五年的一月、二月均为大月,即有连续两个30天的月份。这个设置与朔日也是吻合的。

3。关于鲁僖公六年的冬至日

作为阳历的基础,两个冬至之间的时间,即一个太阳回归年的准确时间是365.2422天。这个时间非常稳定,所以古人把这个时间周期作为了阳历一年的基准周期,并使用这个时间来计算闰月的设置时间,从而避免累积误差。在春秋那个时期,由于每个周历的通常年要比回归年少10天,所以平均三年就要设一个闰月。

具体看这个案例,可以看到,鲁僖公五年共有355天,距离365天的冬至周期还要差十天。所以,从精确的角度看,鲁僖公六年的正月十一日是冬至日,而不是十三日。因此,冬至日是这年的丙辰日,而不是乙未日。相差2天。

从公历的角度看,如果鲁僖公六年的正月初一日是公元前655年的12月15日,再加十日,这年的冬至日就是公元前655年的12月25日。

至于为什么现在的冬至日是12月21日或22日,大概是因为回归年周期小数点后的余数积累造成的原因吧。

也许,这2天的误差,真有可能是杨伯峻先生弄错了呢。

0 阅读:6

春秋右传读过去

简介:感谢大家的关注