吴国盛|狗年从立春起算还是从大年初一算?

吴国盛(清华大学人文学院教授)
2018-02-16 09:29
来源:“科学的历程”微信公众号

立春时,微信圈有朋友转发文章,提出“狗年应从立春起算”,感觉有点奇怪。上网一搜,发现“岁首”之争相当激烈,跟中医之争一样,到了伤感情的地步。草成一篇,以释自己的疑惑,也就教于方家。

一年从哪一天开始起算,是一个人为约定的东西。这个约定就是历法。立春起算还是初一起算,取决于你采用何种历法。

现代中国人常见的历法有两种,一种是来自西方的基督教历,我们今天称之为“公历”,一种是中国古代一直流传到清朝的官方正统历法,我们称之为“农历”。按照公历,岁首是1月1日,我们今天称之为“元旦”;按照农历,岁首是正月初一,我们今天称之为“春节”。这样一说,似乎本文标题的问题根本就不是一个问题。然而问题在于,“狗年”是什么意思?“狗年”这个说法的背后暗指的是哪一种历法?

“狗年”出自干支纪年

狗年的说法起于属相。属相与中国传统的天干地支(简称干支)相关。由10个天干(甲、乙、丙、丁、戊、己、庚、辛、壬、癸)和12个地支(子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥)相搭配组合,形成从甲子到癸亥共60个干支。干支首先被用来记日,最早见于殷墟甲骨文,后来被用于记年记月记时。中国民间用12种动物对应12个地支,称为属相或生肖:子属鼠、丑属牛、寅属虎、卯属兔、辰属龙、巳属蛇、午属马、未属羊、申属猴、酉属鸡、戊属狗、亥属猪。所谓狗年,就是戊年。

什么是干支纪年?

给每一年做一个标记、起一个名字以便辨识叫纪年。纪年的基本方法是确定一个参考点(通常是元年),然后加上一个数字。相当于给出一个数轴,标定数轴上的某个点,只不过原点不是0而是1。比如,按照公历,今年是公元2018年,意思是从传说中的耶稣诞生那年算起今年是第2018年;在台湾,今年是民国107年,意思是从中华民国建立那年起算,今年是第107年。

中国历史上一直有两套纪年方法并存。一个是年号纪年,即以某帝王年号或政权年号为参考点,再加上一个数字。比如康熙五年(1666年),庆历四年(1044年)、永和九年(353年)、民国八年(1919年)等等,都是如此。

年号纪年法短时段好用,长时段不方便。比如你想算一下从康熙五年到民国八年过了多少年,就不好算。如果有不同的王朝年号并存,记录起来也容易引起混乱。这就出现了第二套纪年方法即干支纪年法。理论上讲,干支纪年法也包含“元点+数字”两个要素。但是,干支纪年法的元点十分古怪,它不是基于某一个重要的历史事件,而是历法家为了历法体系推算的需要,人为假定的一个起点。这个起点被历法家称为“上元”。不过,不管这个“上元”怎么定,只要把某一年的干支确定下来作为标准就可以了。历史上,汉武帝太初元年(公元前104年)颁布《太初历》,这一年被定为丁丑年。从此,干支纪年法与年号纪年法同时采用。干支纪年法60一个循环,计算长时段比较方便一点。比如康熙五年是丙午年,民国八年是己未年,它们相差应该是60的倍数加13(已未-丙午)。如果你能够大致知道它小于300大于200,那答案就只能是253。

说了半天,干支只是一种标记年的符号,并不涉及一年从哪天开始算起。如何定岁首,取决于历法。干支纪年本身并不是历法。

什么是立春?

中国传统历法是一种阴阳合历,即既有阴历的成分,又有阳历的成分。阴历根据月亮的运动周期编制,阳历根据太阳的运动周期编制。阴历的优点是,人们根据月相就可以大致知道当天的日子。比如,满月就是差不多十五,上半夜在西天看到半月就是差不多初七八,下半夜在东天看到半月差不多二十二。纯粹的阴历与太阳运动毫无关系,比如古代希腊的历法和现代伊斯兰国家的历法就是纯阴历。他们那里的8月份有时候在夏天,有时候在冬天。可是中国是一个农业国家,农耕文明与太阳的运动息息相关,所以,绝无可能采用纯粹的阴历。我们的祖先信奉阴阳互补的哲学,也没有像古埃及以及后来的基督教世界那样采用纯阳历,而是采取了阴阳合历。

中国的阴阳合历是这样安排的:月份的设置完全依据月亮的视运动,约等于29.53天,因此有的月29天,是为小月,有的月30天,是为大月;朔日(月亮完全看不见)为每月的起点(初一);通常1年设12个月,约354.367天,但这远远不够一个回归年(约等于365.24天)的长度,于是用添加闰月(置闰)的方法,来使年的平均长度接近实际的回归年长度。

为了合理安排置闰,农历必须有它的纯阳历根据,这个纯阳历根据就是24节气。24节气完全根据太阳的周期运动规律编制,是一种纯阳历。它们与来自西方的现行公历有明确而稳定的对应关系:比如春分总在3月21日,秋分总在9月21日;夏至总在6月21日,冬至总在12月21日等等。24节气中的奇数叫“节气”,偶数叫“中气”。比如立春为节气,雨水为中气。从汉代的《太初历》开始,形成了统一的置闰规则:第一、冬至必须在11月;第二、两个冬至间如果正好有12个月就不置闰,如果有13个月就置闰;第三、需要置闰时,在没有中气的那个月之后设置,称为闰某月。

24节气可以帮助农民安排农事,也帮助历法家置闰从而编制阴阳合历,但它只是农历的附加参照,本身并不是一种历法。按照传统的农历,正月初一是一年之始。把正月定为一年之始是夏朝的做法,殷商以十二月为始,周朝以十一月为始。今天之所以把农历也称为夏历,就是继承了以正月为岁始月的缘故。

有以立春为岁首的历法吗?

有没有一种历法把立春列为一年之首呢?有的。在中国历史上,的确曾经出现过纯阳历的历法,即由北宋著名学者沈括所创立的“十二气历”。十二气历根据太阳运动来编制历法,完全不考虑月亮运动。它把一年分为12个月,参照节气定月:立春为1月1日,惊蛰为2月1日,……大寒为12月1日。月亮的朔(不可见)和望(满月)也在历法中标注,但只是一种附加信息,帮助人们预测潮汐。然而,沈括创立的这个十二气历并没有被皇家采纳。

除了沈括的十二气历之外,在中国历史上的确实际存在着一种类似的准历法,这就是由星相家(算命先生)们在编写八字时采纳的历法方案,现代有些人称之为“干支历”。星相家算命首先要掌握一个人出生时的年、月、日和时辰的天干和地支,所谓年柱(年干和年支)、月柱(月干和月支)、日柱(日干和日支)和时柱(时干和时支),一共是四柱八字。星相家的年柱与农历的干支纪年不同。后者把正月初一定为一年之始,前者把立春定为一年之始。

星相家的月柱与农历的月份也不同。星相家的月份是按照类似十二气历那样的方式划分的,即按照节气不按朔望月来确定月干支。此外,农历每年12个月,正好跟12地支相配,因此,并无设置天干的必要。而星相家为了凑足八字,所以人为规定了月天干。由于存在闰月,农历里面用干支纪月会造成不连续性,实际上没有什么历法意义,因此,通常的农历纪月时只用数字,不用干支。

星相家的日柱与农历的干支纪日是一致的,只是起算时辰不尽相同。比如,立春日不是从子正(午夜12点)起算,而是从立春那一刻起算。农历规定一日由子正起算,而星相家往往从子初(午夜11点)起算。

星相家的时柱与农历的时辰不尽相同。一天12个时辰是人为划分的,目的就是跟12地支相配,因此时辰也没有设置天干的必要。为了凑足八字,星相家人为规定了时天干。

总的来讲,星相家采纳的这一套八字编写方案并不构成一个独立的历法。由于它强调立春要从立春那一时刻起算,就导致了同一天分属两个月甚至两年的现象出现,这根本不可能是一个严肃的历法。在中国历史上的大多数时期,颁布历法是皇家神圣不可侵犯的独特权力,私造历法可处死刑,因此,星相家采纳的这一套准历法从未登上历史舞台,只在民间偷偷流行。因此我们可以说,历史上并不存在什么农历之外的干支历。农历采用干支纪年、纪日,与“干支历”毫不相干。“采用干支纪年纪日”与“干支历”不可混淆。

什么样的历法以立春为岁首?沈括的“十二气历”、星相家所谓的“干支历”。需要强调指出,这些历法都不是正统的农历,不是从未实施,就是民间自行其事。按照正统的农历,正月初一为一年之首。作为农历干支纪年的狗年,当然也从正月初一算起。

为什么会有“立春起算”和“初一起算”之争?

既然农历狗年当然是从大年初一起算,为什么还会有越来越激烈的起点争论呢?皇权政治的结束、农历丧失官方正统地位、星相家乘机争夺历法正统,是根本原因。

辛亥革命结束了两千年的皇权政治,也完成了一次重大的历法改革,即在废除皇帝年号的同时,废除中国传统历法,采纳来自西方的耶诞历。民国的革命家在与传统告别方面非常激进,不仅历书上不准印刷农历日期,一度甚至禁止汉族人民过最重要的节日“过新年”。然而,一个民族的文化传统岂能如此轻易割断?汉人的传统节日怎么可能一下子废除?由于废禁旧历效果不佳,最后不得不中止禁令。然而,在这段废除农历的真空时期,民间星相学家的历书开始流行,正统农历与星相历书开始在民间混淆,为今天的岁首之争埋下了祸根。

本来星相家主张的“干支历”与农历是两种完全不同的历法:所谓“干支历”是纯阳历,农历是阴阳合历。星相家完全可以独树一帜,公开宣扬自己的历法。但是,新文化运动以来,破除迷信是时代主流,星相算命属于被打击之列,不敢过份大张其鼓,只能借着民俗学的名义,在传统农历的框架中为干支历张目。但这样一来,就把许多概念搞混了。

传统农历的捍卫者为什么对星相家在干支纪年问题上的搅混水无比愤慨呢?深层的原因是,皇帝年号取消之后,传统农历只剩“干支纪年”这一种纪年方法了。它不能出现歧义,权威性不能动摇。过去年号纪年与干支纪年相搭配的时代,年号纪年由皇家发布,一言九鼎,民间算命先生在干支纪年问题上做些手脚,无碍大局。谁都知道康熙五年即丙午年是从正月初一起算。但是现在皇帝年号没有了,干支纪年若是被误解成从立春算起,那整个农历就乱套了。比如,公元2010年2月14日是农历庚寅年的正月初一,公元2011年2月3日应该是农历辛卯年的正月初一,但若按照干支纪年从立春算起的“星相家法则”,这两个日子就都是农历庚寅年的正月初一了。何其乱也。

中华人民共和国继续把耶诞历(公历)作为国家历法,对传统农历则一直不置可否,这是导致岁首之争得不到权威判决的一个外部制度原因。网上争论的一般情况是,传统历法家坚持正月初一为岁首,民俗学家(星相算命家)主张立春为岁首。

2017年5月22日,国家质检总局和国家标准委发布了《农历的编算和颁行》国家标准。这个国家标准规定农历岁首为正月初一。这个标准为岁首之争提供了一个权威的判决。

出生于立春和大年初一之间的人应该属狗还是属鸡?

回到本文标题所提出的问题,今年生于立春和大年初一之间的人应该属狗还是属鸡?我的回答是,都可以,取决于你怎么理解属相。如果你认为属相的基本功能是供算命先生算命之用,那你就属狗。如果你认同属相的基本功能是帮助记住出生的农历年份,那你就属鸡。

吴国盛

本文先后刊载于吴国盛博客与“科学的历程”微信公众号,经吴国盛教授修订并增加了有关“2017年5月22日,国家质检总局和国家标准委发布了《农历的编算和颁行》国家标准,规定农历岁首为正月初一”等最新内容后授权澎湃新闻转载。为应时,原文发表时“羊年”相关字样在转载时改成了“狗年”。

    责任编辑:韩少华
    校对:丁晓