夏国强
唐人诗歌中节令繁多,诗中所描绘的礼制风俗有如一幅幅精美画卷,组成唐代士人鲜活的生活场景。有“诗史”之称的杜甫自然不会缺乏此类创作,林弘曾对杜诗中的节令习俗加以考证,其中的重要节日在经籍典制中都有验证。但对《太岁日》一诗题名中的“太岁日”为何节日未有详论,而该诗中所记录的“阊阖开黄道,衣冠拜紫宸”宏大场面,又显得颇为隆重,详细考之,应与“太岁纪年”的历史变迁及文化影响有关,故有说明之必要。
自宋代开始,杜诗研究者已在尝试解决这一问题。赵子栎《杜工部草堂诗年谱》把本诗的写作时间定在大历三年戊申正月旦,就是把“太岁日”与“元日”看作同日。其后,赵次公在《杜诗先后解》中明确说:“正月一日谓之太岁日,盖当年太岁之始日也。”蒲积中《古今岁时杂咏》则把“元日、岁日、太岁日、正旦、元正”同列在“元日”下。这样看来,北宋末至南宋初,有一种观点认为“太岁日”就是“元日”,其理由如赵次公注文所说,是从太岁纪年的角度,把当年元日别称为太岁年始日,进而称之为“太岁日”。不过,宋人对“太岁日”的认识并不一致。
南宋黄鹤《补注杜诗》中就有另一种看法:“大历三年太岁戊申,今题云太岁日,是戊申日。按:《旧史》,大历三年春正月丙午朔。则戊申乃初三日。或以‘巫山坐复春’之句为在二年,然二年太岁丁未而正月朔为壬子,则丁未日乃在二月下旬矣。此诗云‘阊阖开黄道、衣冠拜紫宸’,正以新元而言,当是三年正月初三日作。”黄鹤认为干支纪年与太岁纪年一致,把正月之中日干支与年干支相合的那一天定为“太岁日”,再依据诗句中所描述的场景,推算本诗当写在新元正月,并且结合前文“太岁日”的推算方法,驳斥大历二年“复春”之说。黄注论证严谨,为后来注家沿用,引为确诂。降至明代,王嗣奭对黄注提出质疑:“注以初三日戊申为太岁日,然衣冠拜紫宸乃元日诗也,须再订。”但没有重新讨论。清人钱谦益对此问题也颇有疑虑,他虽然没有直接以“太岁日”为元日,却把《太岁日》列在卷十七“大历三年正月所作近体诗五十五首”篇首,在《元日示宗武》之前,似持“元日”说。其后,仇兆鳌注杜总集前人论说,有关“太岁日”的解释仍是蹈袭黄注。谢思炜校注杜诗引用赵次公、黄鹤两说,以“太岁日”干支应与太岁所在相同,但什么是太岁所在,仍有待研究。
传世文献所记录的太岁是一个与岁星(木星)相对应的天体。《史记·天官书》称“太岁”为“岁阴”:“摄提格岁,岁阴左行在寅,岁星右转居丑。”司马贞索隐云:“太岁在寅,岁星正月晨出东方。”如何确定太岁所在,郑玄注《周礼·保章氏》时有所提及:“岁谓太岁,岁星与日同次之月,斗所建之辰也。岁星为阳,右行于天,太岁为阴,左行与地,十二岁而小周。”先民把天空分为十二个星区,当岁星和太阳在同一星区时,黄昏时以南天中星的位置为午位,观测斗柄所指来确定太岁位置,也就是所建之辰。
现代天文学知识告诉我们,北斗星是恒显区中的恒星,它的斗柄指向二十八宿中的角、亢宿或是根据北斗九星斗柄的位置而指向大火宿。随着地球的绕日公转,每月北斗斗柄与角、亢宿联线的相对方位都会往西移动一辰。岁星运行则和地球绕日公转方向一致,向东右行,每年大致移动一个星区。贾公彦疏《周礼·冯相氏》云:“此太岁在地,与天上岁星相应而行。岁星为阳,右行于天,一岁移一辰。”太岁的位置依据岁星与日同次月的北斗斗柄方向来确定,并不与天空中的星区一一对应,否则太岁将永远处在角亢宿所在的寿星区,这一参照也就失去了意义。为此,贾公彦继续解释说:“以岁星为阳,人之所见,大(太)岁为阴,人所不睹,既岁星与大岁,虽右行左行不同,要行度不异。”
太岁的运行与太阳视运动相关,方向相反,因此也称之为“太阴”。其设立的目的,是为了协调岁星纪年系统。张闻玉论及岁星纪年法时提到,古天文学家为了协调回归年与朔望月之间的关系,试图扩大回归年的周期来抵消一回归年与十二个朔望月之间的日数差距,约十二年绕日一周的木星无疑是一个较好的选择,观测者把黄道上的二十八宿按照天球度数划分为十二个星区,用以记录木星的运行轨迹,形成了岁星纪年法。但是,木星绕日一周的实际时间是11.8622 年,随着周期的推移,就会出现偏差。而北斗斗柄的相对运动是地球的公转所造成,与太阳黄道视运动相一致,在闰月的调节之下,更为稳定。
木星在以二十八宿为底盘的天球上运动,每年走一个星区;从星纪算起的十二星区,每月早晨都会在东方地平线、太阳出现之前依次出现。木星每年也就和其所在星区一起出现在早晨的东方天空中,这就是“岁星与日同次之月”。先民在木星所处星区东方晨现的月份,观测黄昏时北斗斗柄的相对位置,在此位置上设定出一个与木星运行方向相反的太岁天体。当木星运行过快而超次,丧失天道稳定的象征意义,就用太岁来弥补。两者,一个和太阳同出,是在天;一个和月亮同升,是在地。就是郑玄注文所说“岁星为阳,右行于天,太岁为阴,左行与地,十二岁而小周”。阴阳调和,维持天道的正常运行。这种协调情况,在《汉书·天文志》有所反映:“太岁在寅曰摄提格。岁星正月晨出东方,《石氏》曰名监德,在斗、牵牛。失次,杓,早水,晚旱。《甘氏》在建星、婺女。《太初历》在营室、东壁。”在不同的观测时期,岁星运行的位置已经发生了偏移,以之纪年难以为继,但通过与之相对的太岁,仍保持了持续纪年的功能。
木星虽然不能完整契合十二年的周期,但相去不远。古天文学家仍然希望可以通过数字调整来弥补这一差距,这就是“岁星超辰法”,其方法记载在《汉书·律历志》“岁术”中:“推岁所在,置上元以来,外所求年,盈岁数,除去之,不盈者以百四十五乘之,以百四十四为法,如法得一,名曰积次,不盈者名曰次余。积次盈十二,除去之,不盈者名曰定次。数从星纪起,算尽之外,则所在次也。”岁星超辰,而用于纪年的太岁不可与之同超,但“岁术”中却附有与岁星同步的“太岁日”计算法:“欲知太岁,以六十除积次,余不盈者,数从丙子起,算尽之外,则太岁日也。”清代学者李锐注本条云:“太岁日者,如太初元年太岁在丙子,则其年丙子日为太岁日。”接着考订说自建武二十六年后,太岁一岁一名,不用超辰之法。贾公彦也提到东汉太岁已无“跳辰之义”。马王堆帛书《刑德》“大游甲子表”就展现了六十干支为序的太阴纪年法,如将太岁用作纪年,自然不能随岁星超辰,同时也就割裂了太岁与岁星的联系,丧失了其存在的意义。而太岁日的提出,一方面重新构建了岁星与太岁的联系,另一方面,从“日”的角度协调了太岁之阴与岁星之阳之间的关联。藉此可以协调汉代设定历法上元与实际天象的关系:
《汉书·律历志上》描述太初元年的天象说:“至于元封七年,复得阏逢摄提格之岁,中冬十一月甲子朔旦冬至,日月在建星,太岁在子,已得太初本星度新正。”元封七年的十一月,日月合璧在星纪次的起点,岁星也在星纪次,可以用来设定历元起始。正月后改元封七年为太初元年,本年干支为丁丑。依据太岁日的算法,元年年数为一,不算所求年,数为〇,算外加一,从丙子数起,太岁日在丙子,与太岁纪年的丁丑并不吻合。朱文鑫《历法通志》解释说“超辰纪年法为丙子,干支纪年法为丁丑”,不超辰的太岁用于纪年,也就是干支纪年;而超辰的太岁日承担与岁星相应的任务,藉此确定岁星的位置,使太岁与岁星仍能保持相对一致。随着太岁纪年名目的逐渐消失,太岁日也失去了实际功用,更多体现了“太岁”的阴面象征意义。但是太岁日的算法仍然保留至唐宋时期。杜甫的《太岁日》诗为此提供了很好的证明。
《太岁日》的写作时间在大历元年到三年居夔州期间。黄鹤注文中提到有以诗中“巫山坐复春”,定诗作写在大历二年,颇有道理。“坐”是留下来的意思,本句指“在巫山已经留了两个春天了”。同样作于大历二年春的《赤甲》有句云:“卜居赤甲迁居新,两见巫山楚水春。”与《太岁日》“楚岸行将老,巫山坐复春”正相契合。大历二年是公元767 年,太初元年是公元前104 年。不算所求年,就是104加上766,一共是870年,不足岁星岁数1728,直接乘以145,再除以144,得到的整数是876,除以60,得到的余数是36,从丙子往后数36位干支,是辛亥,算外加一,该年的太岁日在壬子。检核张培瑜《三千五百年历日天象》,大历二年是丁未年,正月一日也是壬子日。太岁日与正旦同日,这样我们就很容易理解赵次公、蒲积中为什么说元日是太岁日。也就解决了王嗣奭对大历三年戊申日为正月初三,诗中却有“阊阖开黄道,衣冠拜紫宸”元日朝贺情景的困惑。
以“太岁日”入题的诗词,还存有宋人冯取洽的一首《西江月·太岁日作》,起首写到:“老子齐头六十,新年第一今朝。”“齐头”的意思是正满,可以推知这首词是词人整六十岁太岁日所写。冯取洽的另一首词《贺新郎·又用前韵自寿》有句云:“便戊申重见,何须赏。”显然词人一生历经两个戊申年,填词时至少六十一岁。冯取洽《双溪词》中多次提到其友黄升黄玉林,胡德方为黄升所编《唐宋诸贤绝妙词选》作序时间为“淳祐己酉”(淳祐九年),冯氏所说的戊申年,应该是南宋淳祐八年,公元1248年。前面提到的《西江月》是词人六十岁所作,也就是淳祐七年丁未,公元1247 年。本年太岁日算法:用104加上1246,得到1350年,小于岁星岁数1728年,直接乘以145,除以144,取整1359。除去60 的倍数1320,余数是39。从丙子数起,第三十九位干支是甲寅,算外加一,太岁日在乙卯。淳祐七年的元日干支也是乙卯,与词作中“新年第一今朝”相合。
杜甫与冯取洽的作品中,“太岁日”正好都是元日,宋人也有以“太岁日”为元日的观点。那么唐宋时期日常生活中还用汉代算法来推算“太岁日”吗?据《旧唐书》卷二〇〇上《史思明传》记载:“(史思明)与安禄山同乡里,先禄山一日生,思明除日生,禄山岁日生。”可见唐时元日可称为“岁日”,至于是否是“太岁日”,还要进一步讨论。
除杜诗外,我们在敦煌文书中,也找到了太岁日的一些痕迹。P.2049文卷背面记录了净土寺在唐庄宗同光二年(924)、天成五年(930)的算会牒。其中明确写下了“太岁日解斋”的条目。由于二月八日为佛诞节,该账目中从本年二月记至次年二月八日前。童丕排列了文卷中记录节日的顺序,发现“太岁日”排在账簿末尾,是公元925、931年的节日,大概是在前年十二月之后,新年正月十五日燃灯节之前。925年是乙酉年,元日干支甲午,如果太岁日如黄鹤所说,取乙酉日,则在二月二十二日;931 年是辛卯年,元日干支庚申,太岁日如取辛卯日,则在二月三日。足见晚唐并没有把年干支作为太岁日干支。
按照《汉书·律历志》“太岁日”的算法,925年太岁日在辛卯(二月二十八),931 年太岁日在丁酉(二月九日)。这样也不能解释“太岁日”的排列顺序。而在P.2032 晋天福四年(939)净土寺食物等品入破历中出现了“岁日解斋”,同页记录的是十二月及正月的账目,账簿中的“岁日”应是“太岁日”的简称,净土寺账簿中的“太岁日”实际就是元日。太岁纪年与干支纪年不区分后,每年的初一就可以看成是太岁年的开始之日,唐诗中以“岁日”为题写元日不在少数,“太岁日”也就容易和“岁日”混为一谈。这样我们就能够理解赵次公注解:“正月一日谓之太岁日,盖当年太岁之始日也”的来源。
前文已经提到测算太岁所在的天文学依据是岁星和太阳在同一星次,而历元的起始又需要行星与日月同时回到某一原点,因此年干支与日干支的相合就有着特殊的意义,这也是“太岁日”不同于“元日”的重要特点,构成了其后太岁日与年干支相同的文化理据。黄鹤的注文表明,自南宋以后,“太岁日”的太岁所在已经演变成与年干支保持一致,习用至今。如日人山梨稻川《太岁日八韵》诗题注“此岁人日庚申是为太岁日”,即沿用此法。山梨稻川生于公元1771 年,卒于1826 年,这一期间的嘉庆五年(1800)是庚申年,元日干支甲寅,第七日人日干支为庚申,与黄注“太岁日”确定方法一致。而《瑞安市志》“祭太岁”条则明确提到:“每年正、二月内视日干支与太岁同者为太岁日。”
敦煌文书中表明,晚唐民间已不使用《汉书·律历志》中“太岁日”算法,但杜甫与冯取洽诗词题目又向我们表明了这种算法的影响依然存在。从唐代的天文观测水平来看,不但不会再延续太岁超辰之说,即便是“岁星超辰”之法也早已作了大幅度的修正。《新唐书》卷二七《历志》下“大衍历五星议”有云:“岁星自商、周迄春秋之季,率百二十余年而超一次。战国后其行寖急,至汉尚微差。及哀、平间,余势乃尽,更八十四年而超一次,因以为常。此其与余星异也。”根据当时的实测,岁星已经从一百二十多年超一次变为八十四年超一次。有趣的是,唐人虽然在科学数据上已做调整,却并未在思想上否定汉代以来的岁星认识,而且以岁星运行速度快慢不一为理由,试图延续自战国秦汉以来的岁星太岁对应方式。朱文鑫以“狃于三统之说,而曲为之解”批评了唐人曲解,而曲解必然有其文化心理原因,这一点王胜利已在《星岁纪年管见》一文中有所揭示,他认为岁星纪年创立的原因是星占,岁星的运行虽然不是以十二整年为一周,但岁星总会在第十三年正月回到与太阳的汇合点,仍然具有与十二辰对应的实测依据。因此,对岁星运行的实测并不影响用岁星太岁这一组概念进行祸福占卜,唐人《开元占经》卷二三仍使用甘氏岁星纪年法就是其表现之一。“太岁日”算法在唐宋时期得以留存,必然也与这一观念有关。
杜甫在西川蜀州写下的《唐兴县客馆记》末尾写到:“是日辛丑岁秋分大余二,小余二千一百八十八。”谢思炜以《大衍历》推算秋分日、时正合。一则可以看出杜甫熟知历算;二则当时《至德历》已颁,而杜甫袭用旧历,是用来寄托对开元盛世的怀念之情。杜甫用旧法推算太岁日,并非不懂历算,也不是要用于实际生活,更多的是寄托自己的心情。我们可以看到,杜甫诗中不乏“元日”作品,本诗是元日所作,却用“太岁日”作为诗名。不仅是正逢元日、太岁日同日,值得记录,还有对“太岁日”所承载的祸福内涵的深层表达。
《淮南子·天文训》提到岁星、太岁(太阴)与人事的关系说:“岁星之所居,五谷丰昌,其对为冲,岁乃有殃。当居而不居,越而之他处,主死国亡。太阴治春,则欲行柔惠温良。太阴治夏,则欲布施宣明……三岁而改节,六岁而易常。故三岁而一饥,六岁而一衰,一十二岁而一康。”岁星的超辰,致使阴阳时序错乱,体现为太岁的改节易常,引发水旱灾害,以十二年为一个周期,反复运行。这一理论实际是古人生活经验的总结,木星11.8622年绕天一周,而太阳黑子的活动周期平均为11 年,其活跃时对地球磁场产生影响,也就容易出现灾难性天气。当太阳黑子活动逐步达峰点,11年后衰降到周期的极点,次年必然会有所缓和,也就是“十二岁一康”。在实际体验的基础上,古人用太岁与木星组成阴阳两面,尝试找寻规律,顺应周期变化。在两极的转化间,不可避免地会赋予太岁一些负面特征,太岁改节则饥荒、太岁易常对冲则衰病。也随之设定了一些禁忌或解难方式,如葛洪《肘后备急方》“外台秘要辟瘟”条说:“方取上等朱砂一两,细研,白蜜和丸如麻子大。常以太岁日平旦,一家大小勿食诸物,面向东立,各吞三七丸。永无疾疫。”在太岁日一早服药,就能避免疫病。无论是饥荒还是疾病,恐怕都不宜远行。赵睿才曾指出本诗与太岁日不可远行的禁忌有关,我们在《论衡·难岁》所引的汉代《移徙法》找到了具体的规则:“徙抵太岁,凶;负太岁,亦凶。抵太岁名曰岁下,负太岁名曰岁破,故皆凶也。”并以“假令太岁在甲子,天下之人皆不得南北徙”为例。太岁由北方子位往南方午位运行,往北则抵太岁,往南就负太岁。
《太岁日》作于杜甫久居南方,想要北归之时,诗中“西江元下蜀,北斗故临秦”一句与负、抵太岁有关:其一从地理上来看,西江是蜀江,处于南;北斗喻长安,处于北。其二从分野上看,《后汉书志·郡国》刘昭注云:“自井十六度至柳八度,曰鹑首之次,于辰在未,谓之叶洽,于律为蕤宾,斗建在午,今秦分野。”北斗指向长安所在秦地是正南午位,与正北子位恰好相对。与太岁相关的迁移风俗表明,太岁在子,不可南北迁徙。因此,虽然干支纪年在丁未,可杜甫推算太岁日在壬子,本年不宜自夔州返回长安。诗人北归的主观愿望与客观天道不符,由此发出“病多犹是客”的感慨,更觉归期渺茫。加上本年太岁日正逢元日,遥想“阊阖开黄道,衣冠拜紫宸。荣光悬日月,赐予出金银”朝会的盛大,反观自身“鸳行断”、“虎穴邻”的孤寂,伤怀倍增。无论天道、地理、人事都不合心意,其中的忧闷更加难以抒发。诗人用《太岁日》作为诗题,正将这些欲说还休的无奈情绪总括其中,令人惆怅不已。黄鹤之批注太岁日为戊申日,虽然反映了当时民间习俗的实际存在,但与作者主观愿望不能相符,难免丧失了诗中寄托的深意。
注释:
①林弘:《杜甫与唐代节令习俗研究》,《杜甫研究学刊》1996年第4期,第70-79页。
②⑥续修四库全书编委会:《续修四库全书·集部》,上海古籍出版社2002 年版,第1307 册,第18 页;第1307 册,第578页。
③林继中辑校:《杜诗赵次公先后解辑校》(修订本)下,上海古籍出版社2012年版,第1244页。
④(宋)蒲积中编:《古今岁时杂咏》,三秦出版社2009 年版,第1-8页。
⑤(清)永瑢、纪昀等编纂:《文渊阁四库全书》,台湾商务印书馆1975年版,第1069册,第609页。
⑦(清)钱谦益:《钱注杜诗》,上海古籍出版社1979 年版,第590页。
⑧(唐)杜甫撰,(清)仇兆鳌注:《杜诗详注》,中华书局1979年版,第1854页。
⑨谢思炜:《杜甫集校注》,上海古籍出版社2015年版,第6册,第2608-2609页。
⑩(汉)司马迁:《史记》卷二七,中华书局1959 年版,第1313页。
[11][13][19](汉)郑玄注,(唐)贾公彦疏:《周礼注疏》,北京大学出版社1999年版,第706页、第701页、第701页。
[12]陈久金:《北斗星斗柄指向考》,《自然科学史研究》1994年第4期,第209-214页。
[14]张闻玉:《张闻玉文集·古代天文历法讲座》,贵州大学出版社2017年版,第300页。
[15][16](汉)班固:《汉书》,中华书局1962年版,第1289页、第1004-1005页。
[17][18]尽管钱大昕认为“太岁日”当作“太岁所在”,王引之以“太岁日”下有“辰”字,但并无版本证据。参见(清)王先谦:《汉书补注》,中华书局1983年版,第429页、第429-430页。
[20]陈松长:《马王堆帛书〈刑德〉甲、乙本的比较研究》,《文物》2000年第3期,第79-80页。
[21]应加上上元至本年143127 年入算,但太初元年为历元之起,故从本年起算。
[22][37]朱文鑫:《历法通志》,《民国丛书》第4 编,上海书店1992年版,第81页。
[23]张培瑜:《三千五百年历日天象》,大象出版社1997 年版,第223页。以下干支纪年、纪日都以本书为准。
[24]杨巨源《元日早朝》“阊阖迥临黄道正,衣裳高对碧山垂”,与此情景描述类同。
[25][26](清)朱孝臧辑校:《彊村丛书》,广陵书社2005 年版,第3册,第1201页、第1199页。
[27](宋)黄升:《唐宋诸贤绝妙词选·序》,张元济编:《四部丛刊初编》,上海书店据商务印书馆1926 年版重印,1989年版,第341册,第2a页。
[28](后晋)刘昫:《旧唐书》卷二〇〇上,中华书局1975 年版,第5376页。
[29]上海古籍出版社编:《法国国家图书馆藏敦煌西域文献》,上海古籍出版社1994年版,第3册,第241、251页。
[30]陈元靓记二月八日为佛诞节,与四月八日记录不同,原因或是四月八日是以子月十一月为正月,如用寅月为正月,则子正的四月八日就是寅月的二月八日。(宋)陈元靓:《岁时广记》,商务印书馆1939年版,第223页。
[31]参见童丕:《从寺院的账簿看敦煌二月八日节》,《法国汉学》,中华书局2000年版,第5辑,第63、66页。
[32]用《汉书·律历志》岁术来推算这两年的太岁日,也不在正月。这时应该是以元日为太岁日。
[33]上海古籍出版社编:《法国国家图书馆藏敦煌西域文献》第2册,第32页。
[34]沈文凡:《唐诗接受史论稿》,现代出版社2014 年版,第267页。
[35]宋维远主编:《瑞安市志》卷三二,中华书局2003 年版,第1559页。
[36](宋)欧阳修、宋祁:《新唐书》,中华书局1975 年版,第628页。
[38]参见王胜利:《星岁纪年管见》,《中国天文学史文集》第五集,科学出版社1989年版,第18、97-102页。
[39]参见(唐)瞿昙悉达:《唐开元占经》卷二三,瞿昙悉达编:《唐开元占经》,《影印文渊阁四库全书》,第807 册,第343页。
[40]参见谢思炜:《杜甫的数学知识》,《古典文学知识》2013年第2期,第47-49页。
[41]何宁:《淮南子集释》,中华书局1998年版,第274页。
[42](东晋)葛洪:《肘后备急方》卷二,中医古籍出版社2015年版,第56页。
[43]参见赵睿才:《唐代文学隅论》,上海古籍出版社2014年版,第236页。
[44]黄晖:《论衡校释》,中华书局1990年版,第1016页。
[45](晋)司马彪撰,(梁)刘昭注补:《后汉书志·郡国》,中华书局1965年版,第3386页。