当前位置:首页 > 命理 > 正文

为什么中国古人发明的是农历,而古罗马人发明的是公历?

以下是飞蠓的科普文章《农历新年话农历》:

我们现在使用的公历(格里历)和农历,都属于一个叫“历法”的东西。所谓历法,通俗地讲,就是安排与协调年、月、日以明确一个时间序列的法则或者说制度。历法的制定,虽以天文学为基础,但严格意义上讲属于“约定俗成”即文化范畴,而不属于科学范畴(天文学上用以确定时间序列的东西叫“儒略日”,不分年月,逐日排列)。所以,说某个历法科学或者不科学,没有意义(网上历改人士动辄称自己的历法比格里历科学,对此我一概嗤之以鼻)。

历法的制定依赖于天文学观测,这是有原因的。因为年、月、日这些生活概念最初产生就是基于天象观测的,比如太阳两次升出地平线相隔时间为一日,傍晚时月亮两次出现在西方地平线上相隔时间为一月,天狼星和太阳两次一起升起相隔时间为一年等等。但是,即便是最粗疏的观测也能发现,年的长度、月的长度和日的长度并不是整倍数关系。现在我们知道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年),引入开普勒第一第二定律等西方天文学较新成就,并改称“时宪书”(避清高宗爱新觉罗·弘历讳)。辛亥革命后,新政府采用格里历,并以民国纪年,传统历法遂废,唯民间用之,称“旧历”。新中国成立后,旧历逐渐改称农历,历年农历历书均由紫金山天文台历算室发布。

回过头来再说说“历法”。历法掺杂一些文化传统因素是不可避免的,但是历法本质上是安排年月日的一种规则,当然越简单越好。从计算机处理的角度出发,格里历显然有不可比拟的优势,其中的一些人为的安排也不是绝对不能容忍,所以我估计这个东西在可预见的未来不会发生太大的改变,虽然历改人士依旧会提出一个又一个自认为“无比科学”的历法改革方案。

2015年的农历春节,比以往时候来得更晚一些。

据新华社2月18日电称,农历乙未羊年春节是1986~2033年这48年中的“最晚”春节。查万年历可知,1985年春节是2月20日、1996年春节是2月19日、2034年春节是2月19日,2015年的春节同样为2月19日,勉强算得上是这48年间最晚春节。我们还记得,2012年春节是1月23日,那么,春节日期为什么会在公历的日历里跳来跳去?春节的公历日期有没有规律可循?理论上最晚春节会出现在2月的哪一天呢?最早的春节呢?

第一个问题要从我们国家现行的历法体系说起。在辛亥革命以前,我们国家一直使用中国传统历法;辛亥革命后,孙中山发布政令规定,采用全世界通行的格里高利历(公历)为国家历法。但传统历法在民间依然根深蒂固,尤其是农村或其他较封闭的地方的老百姓都更愿意按旧历安排生活。鲁迅先生的小说《祝福》里开头第一句话就是“旧历的年底毕竟最像年底,村镇上不必说,就在天空中也显出将到新年的气象来”,这反映了当时的实际情况。1913年7月,内务部总长朱启钤呈文提议定农历元旦为春节,“凡国民均得休息,在公人员亦准给假一日”,得到时任民国大总统袁世凯的批准,从而变相恢复了传统历法在中国的合法地位。新中国成立后,虽然再次确认采用格里高利历为国家历法,但中华人民共和国中央人民政府于1949年12月23日规定每年春节放假三天,也等于承认了传统历法的地位。因此,我国在事实上形成了两种历法并行的局面,我国出版的日历上往往均标注公历和农历两个日期。顺便说一句,中国传统历法是阴阳合历,很多人就把日历上同一天标注的农历和公历误认为是阴阳合历,这是不对的。阴阳合历指的是农历的历书中,既有以月亮运行为依据的大小月安排,也有以太阳运行为依据的二十四节气安排,看传统的历书就能一目了然。

传统历法按实际月相规律设定大小月(大月30天,小月29天),那么,就算某一年全是大月,一年最多也只有360天,与1回归年长度365.2422日差别不小;所以必须在某些年份里多安排一个月(即所谓闰月),使农历年的平均长度尽可能接近1回归年的长度。举例来说,中国历法曾长期使用“19年7闰”的置闰方法,19年内一共是12×19+7=235(月);已知一个朔望月的平均长度是29.5306日,则19个农历年=235×29.5306=6,939.691(日),平均1农历年=6,939.691÷19≈365.2469(日)。与回归年的长度相差约0.0047日,相当于200余年才出现1天的误差,精度相当高了。

闰月制度的引入虽然使传统历法中1年的平均长度以很高的精度接近回归年的长度,但某些年份12个月,某些年份13个月,又造成具体的年份里一年的实际长度相差很大(平年353~355日,闰年383~385日)。相比较而言,公历的年长度要均匀得多(平年365日,闰年366日),所以农历中那些特定的日子,如正月初一,就会在按公历编制的日历里飘忽不定。当然反过来也一样,如果我们用农历编制日历,同时标注公历日期,也会发现公历的特定日期(例如1月1日)在日历里飘忽不定。

所以,春节的日期在日历上跳来跳去的原因,就是由于中国实际上并行着两种历法,而两种历法的年长度相差甚远的缘故。同时,由于19年内大约7个闰月的置闰现象(请注意:中国传统历法自唐麟德历之后就已经取消闰周制度了,改采“无中气之月为闰”制度,所以这里只能说是现象,不能说是规则)使得19个农历年的总长度非常接近19个公历年的总长度。所以总的来说,某年春节所在的公历日期往往与19年前或19年后相同(1985年是个特例)。有兴趣的朋友可以找万年历验证一下这个现象。

那么,春节日期在公历日历中跳跃的范围是相对固定的吗?

答案是肯定的。春节最早不会早于公历的1月20日,最晚不会晚于公历的2月21日。

怎么知道这一点呢?且听我慢慢道来。

首先,现行农历中规定冬至日所在的月为农历十一月——原因很简单,农历中12个月份从冬至日所在月开始,依次以十二地支命名:冬至所在月为子月,次月为丑月,第三月为寅月,余类推。自汉太初历以后,除极少数时期(王莽、魏明帝、武则天和唐肃宗等)之外,大多数历法以寅月为正月,所以子月(冬至所在月)即为农历的十一月了。

其次,我们知道冬至日在公历里的日期是相对固定的,最早是12月21日,最晚是12月23日。如果某一年冬至日为公历12月23日,且当天是朔日(当日为农历十一月初一);如果接下来两个农历月都是大月,则次年2月21日为下一个农历年的春节。同样,如果某一年冬至日为公历12月21日,且冬至次日为朔日(即12月22日为农历十二月初一);如果接下来的农历月是小月,则次年1月20日为下一个农历年的春节。

这是冬至日与朔日相互关系中的两个极端情况,而根据现行农历规则,这也是春节在公历日期中的极限情况。所以我们完全可以断定,公历中春节出现的最晚日期是2月21日,最早日期是1月20日。查万年历可知,最近200年里没有2月21日春节,倒是在1985年(乙丑年)出现了2月20日春节。网传并经过核实,2月21日春节将在2319年(己亥年)出现;至于1月20日春节,在1901~2100年之间都没有查到记录,倒是查到三条1月21日春节记录:1966年(乙巳年)、2061年(庚辰年)和2099年(戊午年)。