其实,中国的农历是一种非常先进的阴阳历。所谓阴阳历,就是一种能够同时调和回归年和朔望月的先进历法。在这里,读者可以将回归年简单地理解为地球围绕太阳运行的周期。更精确地讲,它指的是太阳中心在黄道上连续两次通过春分点的时间间隔。由于岁差的存在,春分点本身相对于背景恒星还有一个缓慢的退行,因此,回归年比地球真正围绕太阳一周所经历的恒星年略短(二者相差约20分24秒)。至于朔望月,顾名思义它指的是月亮的月相从一个新月(或曰朔)到下一个新月的时间间隔。现代天文学观测表明,一个回归年的平均长度约等于365.2422日,一个朔望月的长度约等于29.5306日,二者都是非常零碎的小数。而年、月、日的数目只能是整数。如何用这三组整数所构成的有理数去逼近以上两个无理数,就成了历法制定者所要面临的首要问题。事实上,根据日本天文学家新城新藏的考证,至少在春秋晚期的时候,我国就已经摸索出了一套成熟而巧妙的阴阳历调和方案,即通过“置闰月”的办法来阻止岁首在阳历中的逐年漂移。
试用回归年的日数除以朔望月的日数,便可算得一个回归年中包含的朔望月数目,约为12.36826个月,除了整数部分的12个月以外还余有一个小数部分,回历开斋节的漂移正源于此。中国人发现这个小数可以用7/19来逼近,其数值约为0.36842,二者的前三位有效数字都是相同的。这意味着只需每十九年置七个闰月(即十九年中有七年包含十三个朔望月,其他十二年包含十二个朔望月)就能使回归年和朔望月精确地调和在一起。在西方,这种置闰法曾被古希腊天文学家默冬(Meton of Athens)于公元前432年首次发现,并在当年的奥林匹克运动会上公之于众。因而这种置闰法也被称为“默冬章”。
于是,接下来的问题就是如何在十九年的周期里安排这七个闰月。东西方的古文明在这一点上分道扬镳。最早的美索不达米亚文明采用巴比伦历,国王会根据情况随机宣布置闰月,因而置闰情况混乱。犹太人使用的犹太历置闰方法相对简单,他们将春分日视为太阳年节点,规定春分日所在的朔望月为每年的第一个月,若不满足上述情况,就在上年的岁末安插一个闰月。我国的置闰方法稍微复杂一些,其中杂糅了我国独特的二十四节气系统(参见表2),相对来讲是一种比较科学的置闰法。下面做一简单介绍。