我们现在使用的公历(格里历)和农历,都属于一个叫“历法”的东西。所谓历法,通俗地讲,就是安排与协调年、月、日以明确一个时间序列的法则或者说制度。历法的制定,虽以天文学为基础,但严格意义上讲属于“约定俗成”即文化范畴,而不属于科学范畴(天文学上用以确定时间序列的东西叫“儒略日”,不分年月,逐日排列)。所以,说某个历法科学或者不科学,没有意义(网上历改人士动辄称自己的历法比格里历科学,对此我一概嗤之以鼻)。
历法的制定依赖于天文学观测,这是有原因的。因为年、月、日这些生活概念最初产生就是基于天象观测的,比如太阳两次升出地平线相隔时间为一日,傍晚时月亮两次出现在西方地平线上相隔时间为一月,天狼星和太阳两次一起升起相隔时间为一年等等。但是,即便是最粗疏的观测也能发现,年的长度、月的长度和日的长度并不是整倍数关系。现在我们知道1回归年=365.2422日,而1朔望月=29.5306日,对于古人来说,无论怎么安排都不可能让年月日和天象严密吻合,所以只能是尽量安排历法年(简称历年)和历法月(历月)的*平均长度*和回归年、朔望月的长度相接近,使得年月日尽可能地吻合天象不至于偏离太远。这里这个“尽量安排”就体现出古人的文化差异了。
不同文化区域的人们制订出各自的历法,这些历法大致可以区分为三类:太阴历(只考虑月亮也就是太阴运动规律和历法相协调的)、太阳历(只考虑太阳运动规律和历法相协调的)和阴阳合历(同时考虑太阴和太阳运动规律并协调二者关系的)。伊斯兰教历法(希吉来历)是典型的太阴历:太阴圆缺一次为1月,集12个月为1年,这样1平年即为354历日,完全不考虑太阳在天空中的位置,所以伊斯兰教的斋月(希吉来历的9月)在公历中飘忽不定。现行公历(全称叫格里高利历 Gregorian calendar,简称格里历,施行于1582年10月15日)是典型的太阳历:平年365历日,每400年置97闰日,闰年366历日,完全不考虑月亮在天空中的位置,很难让人把它的“月”和月亮联系起来。
而我们日常所谓农历,其基本成分有两个,一个历月,一个节气,前者体现出太阴历的特点,而后者体现出太阳历的特点,所以称其为阴阳合历。先说历月,按农历规则,一朔望月即为1历月,上文提到,1朔望月=29.5306日,这就意味着一历月长则30日,短则29日。显然,如果机械累计12个历月为1历年,则农历就会和希吉来历一样成为太阴历,那样的话,咱们就有幸大夏天过大年初一了。以农业立国的中国古人为避免出现这种尴尬局面,就必然要考虑设置闰月,即在正常的1年12个月之外,某些年份额外增加1个月,通过19年7闰的办法,可以调整1历年平均长度为365.2469日,与1回归年长度相差无几,这样可以确保大年初一在冬季度过。
那么,怎么安插闰月呢?按现行农历规则,这取决于二十四节气。在天文学上,太阳的周年视运动在天球上画了一个大圆圈,这个圈叫“黄道”,地球的赤道平面在天球上也截出一个大圆,叫做“天球赤道”,黄道和天赤道有两个交点,一个上升时交点,叫春分点,一个下降时交点,叫秋分点,这两个点在黄道上相隔180度,从春分点沿黄道逆时针90度有一个点,这个点叫夏至点,从秋分点沿黄道逆时针90度,这个点叫冬至点。太阳沿黄道过夏至点时,其直射点在北回归线,过冬至点时,其直射点在南回归线,过春分、秋分点时,其直射点在地球赤道上。黄道上两分两至这4个点全世界公认,但在古代中国,黄道上共分出24个点,从冬至点开始每隔15度一个点(这种划分法叫做定气法),依次为冬至、小寒、大寒、立春、雨水、惊蛰、春分、清明、谷雨、立夏、小满、芒种、夏至、小暑、大暑、立秋、处暑、白露、秋分、寒露、霜降、立冬、小雪、大雪。太阳在黄道上依次经过这些点的那一天就叫做“气”,其中小寒、立春、惊蛰、清明、立夏、芒种、小暑、立秋、白露、寒露、立冬、大雪称“节气”,而冬至等称“中气”,合称“二十四气”,俗称“二十四节气”。
农历挂历
按现行农历规则,在两个冬至日之间,如果是12个历月,则当年不需要置闰,如果有13个月,则需要置闰(原因下面解释),具体办法是,从上年冬至所在历月开始选择第一个没有“中气”的历月为闰月,其名称为其前一个月的名字加“闰”字。举例来说,2008年(戊子年)冬至日为当年的十一月廿四,2009年冬至是当月初七,如果不加闰月,则顺序排下来是己丑年十二月初七,因为要保证冬至日在当年十一月(按古代中国传统,一年十二个月按地支排序,冬至所在月为子月,次月为丑月,依次类推。中国传统历法中以寅月初一为岁首的历法称为“夏历”,这样一来,夏历中冬至所在月必须为上年十一月,而现行农历属于夏历),所以需要在从甲子年十二月(不含)开始到己丑年冬至所在月之间的11个历月中找一个倒霉蛋充当闰月,根据月球运动表和太阳运动表,我们很快查到己丑年五月之后的那个月只有一个小暑(在当月十五)节气,没有中气,好,就是它了,“己丑年闰五月”。需要注意的是,虽然五月之后的第四个月也是只有一个节气(寒露)而没有中气,但因为不是第一个没有中气的月,所以很幸运有自己的正式名字“己丑年八月”。谈到这里我们就明白了,所谓“二十四节气置闰”只是人为规定的用来置闰的一个办法而已,看起来很“科学”,但本质上不过是建立在科学已经预测出来的事实基础之上的一种人文关怀罢了。
不过,正是因为有了这个置闰规定,节气成为农历的一个不可或缺的组成部分。而正是因为二十四节气的不可或缺,再加上二十四节气完全反映太阳的周年视运动(这显然利于农事安排),所以,它体现了的是农历中的阳历成分。农历就是因为它即包含太阴历成分又包含太阳历成分,所以才被称作“阴阳合历”。
从上面的介绍可以看出,制定中国传统历法是一件非常繁琐的事情,而且在古代,历算家们还要用预测日月食的办法来验证历法的“合”与“不合”,显然这非得精确掌握、预测日月位置才能做到。明代以前,中国的传统做法是这样的:观测一个周期(例如三五年或七八年)的日月位置,根据这些原始位置数据整理出一次差、二次差乃至三次差计算表,然后用这些基础计算表通过外推法或插值法预测未来时日的日、月位置,再根据这些位置来排定年月日次序,并预测日月食以做校核。如果日月食不准,要么基于天人感应理论歌功颂德说当朝帝王德感天地、上天取消日月食抑或危言耸听称天降警示有佞臣出,要么就要重新来过。这中间在数学运算上有进步,但大的框架是这样的,没有突破,所以中国天文学在这几千年里进步并不是很大。
直到明朝末年,因为依前元郭守敬所定历法预测日月食连连失误,无法再拿老天爷蒙事,所以只好重订历法。这时候西方传教士已经和中土有所接触,初步了解欧洲天文学成就且已经受洗为基督徒的徐光启就建议请西洋人协助修历,而耶稣会传教士汤若望等人也恰好想借此机会打入我朝内部,所以双方一拍即合,合作修历。置闰法则什么的文化方面的规定还是从旧,但用来预测日月位置的算法发生了革命性变化,从中国传统的代数法改为西方的几何法。包括小到分圆周为360度大到哥白尼理论某些学术观点在内的欧洲天文学基础知识第一次大规模地被引入中国。1634年新历书编成,取名“崇祯历书”,因为当朝内忧外患,没有来得及颁行就垮台了。清军入关后,汤若望把崇祯历书进行删改取名“西洋历法新书”,呈交新的统治者,急于确立文化统治地位的清统治者将其命名为“时宪历”,于1645年颁行,乾隆年间又进行了修订(1742年),引入开普勒第一第二定律等西方天文学较新成就,并改称“时宪书”(避清高宗爱新觉罗·弘历讳)。辛亥革命后,新政府采用格里历,并以民国纪年,传统历法遂废,唯民间用之,称“旧历”。新中国成立后,旧历逐渐改称农历,历年农历历书均由紫金山天文台历算室发布。
回过头来再说说“历法”。历法掺杂一些文化传统因素是不可避免的,但是历法本质上是安排年月日的一种规则,当然越简单越好。从计算机处理的角度出发,格里历显然有不可比拟的优势,其中的一些人为的安排也不是绝对不能容忍,所以我估计这个东西在可预见的未来不会发生太大的改变,虽然历改人士依旧会提出一个又一个自认为“无比科学”的历法改革方案。
作者:飞蠓