农历的大小月是如何确定的,有木有连续出现几个大月或小月相连的情况?
这是一个很好的问题。我以为可以从历史的角度来看。
我说历史的角度,是指应该从今日农历的前期确定大小月的方法开始考察。据我所知,以此视角考量,至少可以分为四个阶段,一曰观象,二曰经朔,三曰进朔,四曰定朔。而四个阶段,均有连大月的现象,第二个阶段没有连小的情况。
观象时期
月相的变化是人类在地球上最容易发觉、见证、记录的自然奇观之一。满月的亮度是非常夸张的,然而更加神奇的是,如此夸张亮度的东西,会在十几天之后遁去无踪。而后又逐渐变亮。人们有意识的注意到月相变化肯定是远在史前的,而很长时间之内,人们并没有掌握月亮出没的规律。故而早期“月”这个以月亮为名的计时单位,是要依靠实际观测来确定的。有些观点认为,初期人们并非以朔日为每月开始,盖因晦朔实际上是看不到月亮的,就不容易确定,相对的,新月初现(一般是农历的初二三时候)于观察也更方便。不过也颇有不同观点。
这一阶段,目前了解的代表时代是殷商时期和周早期。
我们对于殷商时期的纪历方式了解非常之少,网络上谈这段时间历法的人要有七八成是民科(他们不只了然殷商历法,于伏羲、黄帝时期的历法天象亦颇有洞见),而专业学者,则从尝试甲骨卜辞中一窥殷商历法面貌。
甲骨卜辞并不直书纪历规则,然而于占卜之中,多有记录占卜之日的干支和月份,这也就给学者们提供了推断殷商纪历时候月份大小分布提供了依据。
比如这块甲骨:
此甲骨的好处是,在一片甲骨上有多个月份的占卜条目——这种情况下我们说这些月份是连续记录时候会更有底气。所谓多个月份,这片甲骨涉及月份为十月、十一月、十二月、十三月(闰月),二月、四月、五月。每月均提及几个日干支。
部分释文如下:
如释文,十二月的一条卜辞提到日干支为癸酉,而二月同样有一条卜辞是在癸酉日占卜的。这就意味着中间留给十三月(闰月)和一月的日数一共为59天,殷商纪历方式很可能是分大小月的,大月30日,小月29日。
这样的线索如果足够多,我们可以很大程度上了解到卜辞记录的月份排布规律——如果真的有规律的话。同样的工作可以复制在《甲》2124上——此片甲骨记录中,五月有丙寅日,八月有甲子日。故而五六七八四个月共计至少119天。如果无意外,这就是指四个月中有三个大月,一个小月,必然有连续大月的现象。
事实的真相可能是殷商时候大小月排布并没有那么理想,类似的工作做多了,发现竟然还有神奇的四个月共计121天的现象,不只是四月连大,还应该有一个月大到出奇的31天……而同时,还有很多连续为小月(29天)的情况出现。
由观察来判断月的大小是一件并不很靠谱的事情,这一阶段什么奇葩排布都可能出现,连续大月,连续小月,都是有的。
经朔时期
经朔并不是一个现代常用的词汇,现在表示这个含义一般用平朔这个词。我其实不知道这俩词是不是一个意思,希望没用用错。
所谓经朔(平朔),就是指平均的朔望月时长。经朔排布大小月的时期就是指以朔望月的平均值来做简单的累加计算,通过小数部分来判断大小月。
我曾经看过一个基督教宣传的小册子,里面声称,在远古的完美世界里面,一个朔望月恰好是30天。倘若如此,则不需要有大小月的排布问题,每个阴历月固定30天即可。
退一步,假使一个朔望月长度为29.5天,也是很容易的,只需要29天、30天,大小月间隔排布即可。
如果你身边有比较熟识的天文爱好者,他会毫不犹豫的告诉你这个长度是29.53(29.530588)天,略大于29.5天。
其中,分数的分子部分(如0、43、5、48等)被称作朔余。朔余为0-37时,该月为小月,38-80时,该月为大月。每81个月包含43个大月38个小月,为一循环。具体排布如下:
太初历大小月一览
由此可见,太初历没有连小月,每81个月有5个连大月。大小月排布如此循环使用。
经朔时期,虽然各家历法实测的朔望月值颇有不同,但是均略大于29.5,大小月平均间隔排布的理想情况便难以实现,必得插入若干连大月来“凑”。此一时期大概为战国至隋,其大小月排布特点为,以大小月均匀间隔为主,偶尔插入连大月(一般为两月连大),具体频率因数据不同略有小异,无连小月。
进朔、定朔时期
注意标题,我讲的顺序和开始列的顺序不同。第三时期为进朔时期,第四时期为定朔时期。为方便理解,我们先来讲定朔时期。
前面说过,一个朔望月平均长度约为29.53天,这是一个平均值。实际情况就好像说我国平均收入一样,具体看单个月份,大约在29.27至29.83天之间变动。此误差看起来似乎并不严重,但是很容易在天象上体现出了,比如就是日食从原理上讲必然发生在朔日。但是因为前面的原因,历书确定的的朔日和实际的朔日经常会有偏差,日食不在朔的情况颇多。是很容易发现问题的。随着观测水平与数学水平的提升,人们开始重视月亮运动不均匀的现象,也逐渐发展出一套可以用于相对精确的计算合朔时刻的方法。
以后几个月合朔时刻预报
所谓定朔法,就是指通过上述方法,实际计算日月合朔(从现在的定义来讲就是日月黄经度数相同)时刻。日月合朔时刻所在的那一天,被定为朔日,也就是农历的初一。下一个日月合朔时刻则通过同样的方法定为下月初一。于是如上的预测数据,公历3月17日为农历初一,4月16日为农历初一,5月15日为农历初一……
定朔方法并不致力于对农历大小月进行规律排布,其结果自然是大小月排布并没有看得见的规律,连大月和连小月都是有的。
清代万年历,可见连大月和连小月
本来这项技术在隋唐时候已经是成熟技术,可以日常应用了。但是有一个问题:人们觉得两个月连续大月或者小月还能接受,但是用来用去,发现定朔方法竟然会排出连续三个小月或者连续四个大月的情况——很多人觉得这是不可接受的,于是出现一种叫做进朔的方法,用以改善多月连大、连小情况。
这种方法的发明人是唐代的李淳风。李淳风是唐代第二部历法《麟德历》的作者——前面说的四月连大的情况就出现在他之前的唐代历法之中。进朔的具体方法是,如果推算的合朔时刻在当天18:00以后,则不把朔日定在当天,而定在第二天。如前面3月17日、5月15日,不定为初一,而选择次日定为初一。
以此进朔方法,多月连大和连小情况相对更加平均,基本不会出现四月连大的情况。