Beyond the Void
BYVoid
夏历漫谈
本文简化字版由OpenCC转换

什么,今年没有大年三十?相信不少人临近过年才发现这个「严重」的问题,莫非是2012世界末日到了?当然是开玩笑,不过话说回来,大家也应该还有印象,因为上次没有大年三十是2006年,距今还不算远。要问为什么,大家都会说这是历法规定的,但真的能弄懂夏历历法的人真可谓屈指可数了。我试图通过这篇文章带领大家从零开始,认识我们的中华夏历。

古六历

夏历,又叫「农历」,俗称「阴历」或「旧历」。中国绝大部分传统节日,如春节、端午、中秋、重阳,都是以夏历计算的。夏历,顾名思义,乃是有夏一朝的历法,名列「古六历」之一。「古六历」是传说中上古的六种历法,即「夏历」、「殷历」、「周历」、「鲁历」、「黄帝历」、「颛顼历」。其中「黄帝历」和「鲁历」由于缺乏历史文献,均已难考,而「夏历」、「殷历」、「周历」则有历史作证。

由于历法涉及到祭祀农桑,乃宗法大事,所以每当改朝换代,历法总要推陈出新。「夏历」、「殷历」、「周历」就分别是夏商周三代的历法。夏殷周三历的主要区别在于一年以不同的月份为起始月,即不同的正月。《史记‧历书》云「夏正以正月,殷正以十二月,周正以十一月。」就是说夏历以一月为正月,殷历以丑十二为正月,周历以十一月为正月。换言之,商周历法的正月都比前朝提前了一个月。

说到夏历与周历,不得不提起《诗经》中的一个名篇——《七月》: 七月流火,九月授衣。 一之日觱发,二之日栗烈。 无衣无褐,何以卒岁? 三之日于耜,四之日举趾。 同我妇子,馌彼南亩。田畯至喜。

《七月》是《诗经‧国风》中最长的一首诗,生动的记载了农民一年四季的劳动生活,而其最大的亮点还是诗章咏唱之间提到了两种不同的历法。上面这段文字中有「七月」「九月」「一之日」「二之日」「三之日」「四之日」几个不同的时节,其中「七月」、「九月」指的就是夏历的七月和九月,而「一之日」、「二之日」、「三之日」、「四之日」则是周历中的一、二、三、四月,对应了夏历的十一月、十二月、一月和二月。《七月》一篇至少证明了夏历和周历都是可靠的,而不是后人托古伪造。

夏历的演变

古六历中的「颛顼历」相传乃三皇五帝之颛顼帝所创,以三百六十五又四分之一天为一年,取十九年七闰法,可谓中国传统历法最早的雏形。颛顼历的正月在周历的基础上又提前了一月,以夏历十月为岁之起始。在秦朝和汉初,颛顼历一直是官方历法。汉武帝时期制订了「太初历」,重新以夏历一月为岁首,自此以后各部历法的「正月」就没有再发生过变化了,这也是为什么近世以「夏历」来代称中国传统历法。从汉代到明代的一千多年间,中国历史上出现了数十种历书,其中不乏很多有重大影响的创制,但几乎都是在前世的基础上进行修正。我们今天使用的「阴历」实际上是明朝崇祯年间编纂的「时宪历」,又名「崇祯历书」,这部历书作为官方历法贯穿明清两代,直到1912年中华民国建立以后才被公历取代。

提醒一下,文章开头和以下提到的「夏历」「阴历」「农历」均指沿用至今的「时宪历」。尽管历史上的「夏历」和今天的「时宪历」已经很不相同,但为了避免混淆,我们还是尽量用「夏历」来代称。

阴阳历

我们一般会把夏历俗称为「阴历」,但实际上夏历并不是真正的阴历,真正的阴历是完全按照月相来规定的历法,每个月29.530588天,一年有12个朔望月,约354日。现今常用的历法中只有伊斯兰历是真正的阴历。相对于阴历,阳历是根据太阳直射点的变化周期来制定的,也就是说阳历一年的长度等于一个回归年,古称「岁实」,平均365.242天。我们所说的「公历」(格里高利历)就是一种阳历。

中华夏历既不是纯粹的阴历也不是纯粹的阳历,而是一种「阴阳历」。阴阳历的特点是既能保证每月符合月相变化周期,又能保证每年的平均长度等于一个回归年。夏历的大月30天,小月29天,平均每月为29.5天,与朔望月周期一致,平年353到355天,闰年383到385天,每十九年平均365.247天,差不多等于一个回归年。

月相 月相

据考证阴阳历可能起源于殷商时期,因为商代人十分重视占卜祭祀,要求历法与月相吻合,而其高度发达的农业文明也必然依赖精确的阳历,因此便产生了通过置闰来实现的阴阳历技术。

二十四节气

世界上大部分历法都是阳历,而阴历和阴阳历较少。其原因主要在于太阳位置决定了地球上的温度、光照、季风等因素,对人类活动有十分重大的影响。相比之下一般人除非是祭祀占卜活动,不会太关注月相。中国古代一直是一个朴实的农耕文明社会,对农时精确计量的要求十分迫切,因此祖先们又根据阳历发明了一套「二十四节气」的计算方法。

二十四节气起源于上古日晷记录的阳历年中的「日长至」和「日短至」,后又有了「春分」和「秋分」,一直发展为二十四个节气日。二十四节气的每个节气对应了太阳在黄道上运行15度,又可细分为十二节气和十二中气:

月份 节气 中气
正月 立春 雨水
二月 惊蛰 春分
三月 清明 谷雨
四月 立夏 小满
五月 芒种 夏至
六月 小暑 大暑
七月 立秋 处暑
八月 白露 秋分
九月 寒露 霜降
十月 立冬 小雪
冬月 大雪 冬至
腊月 小寒 大寒

二十四节气

十九年七闰

我们知道,一个朔望月是29.53天,一年十二个月就是354.36天,而一个岁实是365.24天。这样下来每年阴历和阳历都有10.88天的差距,如何抹平这个差距呢?夏历采用了「置闰」的方法,用一句话概括,就是「十九年七闰」。夏历每19年有7个闰月,也就是说19年中有12年是每年12个月,有7年每年13个月,19年总共就是235个月,6939.69天。依据阳历,19年总共有6939.60天,与夏历只相差约0.09天,所以古人利用「十九年七闰」的方法保证了阴历与阳历的平衡。

夏历的置闰规则到底是怎样的呢?这个要从二十四节气的推算方法说起。二十四节气是与阳历紧密契合的,平均每两个节气之间的有15.22天的间隔。我们可以看到在公历中二十四节气的时间是比较固定的,每个月上下半月分别有一个节气和一个中气。而在夏历中就不一样了,因为每个月只有29.53天,假设某个月的初一是中气日,那么下个月出现的节气和中气就会向后顺延0.91天,32.45个月后,将会有一个月没有中气。夏历就规定「没有中气的月份为闰月」,这样每32.45个月有一个闰月,相当与每2.70年一个闰月,大致就是「十九年七闰」。

例如2012年5月20日是夏历四月三十,这一天是小满中气。下个月的十六日是芒种节气,但没有中气,因此将这个月称为闰四月。

读到这里,相信你也已经知道了为什么每年春节越过越早却总在公历1月下旬到2月中旬之间了。不过我要提醒的是,这仅仅是夏历置闰最简单的描述,很多细节和附加规则并没有详细说明,因此可能会遇到「双中气」「假闰月」「冬至不在十一月」等特殊现象,如「2033年问题」。

为什么今年没有大年三十?

让我们回答开头的那个问题:「为什么今年没有大年三十?」我们知道一个朔望月是29.53天,但历法中月份的天数必须是整数,因此夏历采用了大小月交替出现的方法来保证平均每个月的时间接近朔望月周期。夏历规定大月30天,小月29天,以新月出现的那一天为初一,如果新月出现的时间是正午,那么这个月就是小月,如果新月出现的时间是午夜,那么这个月就是大月。因此没有大年三十一点也不奇怪,只不过是这一年腊月是小月罢了。

参考资料

维基百科 农历 维基百科 阴阳历 维基百科 节气 果壳网 今年为什么没有年三十? 如何转换阴阳历 百度知道 中国农历纪年是谁发明的

上次修改时间 2017-02-03

相关日志