s 阅读页

第一章 古四分历解说——晚秦汉初历法探原

  中国是世界文明发达最早的国家之一。古代中国的天文历法曾经达到了很高的水平。西汉武帝时期行用《太初历》,已经认识到对日、月、年进行系统地协调,并且也考虑到和日食的周期相配合。从此以后,各代历法改革都有相当清楚的记录,因此,可以较为容易地复制出太初以来二千多年的朔闰表。但对太初以前的制历情况,过去虽然进行过许多研究,可是由于资料不足和历法发展本身的复杂性,至今却仍然无法得出令人完全满意的结果。近年来,相继出土了大量的秦汉简牍,其中包含着不少有助于研究历法的极为可贵的资料。这些资料给我们许多新启示,使我们现在有可能对战国秦汉间的历法做一次新的研究,并复制出准确可靠的长历表。这就是本文的宗旨。

  一、《颛顼历》的基本数据和历元

  西汉武帝太初元年(公元前104年)以前,行用的历法叫做《颛顼历》。汉初的《颛顼历》是沿用的秦的历法。“汉兴,方纲纪大基,庶事草创,袭秦正朔。以北平侯张苍言,用《颛顼历》。”[1]由此可见,至少在战国晚秦以后,《颛顼历》曾经是每年制定历谱的依据。

  《颛顼历》是古四分历的一种。四分历的得名是因为它把一年的长度规定为三百六十五日又四分之一日。为了使季节和年度协调,当时使用十九年七闰法。十九年七闰,在战国中后期,已经是制历者早就掌握了的规律。

  由此,《颛顼历》的两项基本关系是:

  一年(指回归年,古称岁实)为365日。

  每年十二个月,十九年中增加七个闰月。

  从这两项基本关系出发,可以推演出以下几个数据:

  (1)十九年中共有:

  19×12+7=235月

  (2)一月(指朔望月,古称朔策)有:

  (3)每十九年(古称一章)中共有:

  (4)每四个十九年,即七十六年(古称一蔀)有:

  古代,每一种历法都要从一个标准的时刻开始来编制历谱。这个标准的时刻叫做历元。清历算家梅文鼎说:“造历者必有起算之瑞,是谓历元”,[2]正是这个意思。根据上面得出的几个数据,把某一个原始的标准点即历元,作为“起算之端”,按照六十干支的顺序,就可以排列出来无限期的长历表。

  关于《颛顼历》的历元有种种相近但不相同的记载,其中以后汉蔡邕的说法最为明确可靠。蔡邕在《月令论》中说:“《颛顼历术》曰:‘天元正月己巳朔旦立春。’”[3]这就是说《颛顼历》的原始标准点是某一年的正月朔日(初一)半夜零时零分,恰为立春,这一天的干支是己巳。按照“正月己巳朔旦立春”为历元编制《颛顼历》的长历表,若干年以后还会出现“正月己巳朔旦立春”,它的周期是一千五百二十年。这个循环周期是由十九年一章和七十六年一蔀积累而成的。

  从历元开始,经过十九年以后,也就等于经过二百三十五个月以后,新的一年的开始也正是新的月分的开始,立春和合朔在同一点上,因此每一章开始的每一天都是正月朔日立春。所以,十九年构成一个小循环周期。十九年共有日,有小余四分之三日,立春合朔的时刻由前一章的半夜零时,移到了这一天的四分之三日,即十八时(今时,下同)。

  每四章一蔀,共有27759日,没有尾数。因此,每蔀的开始都是正月朔旦立春,即正月初一半夜零时零分合朔,又正好立春。所以七十六年构成一个中循环周期。但是历元是己巳日,按照六十干支的排列,经过一蔀以后,新的一蔀开始不再是己巳日。因27759日不能被60整除。它的关系是:

  27759-n·60=39(设n=任意正整数,下同。)

  这就是说第一蔀以己巳为蔀首日,第二蔀的蔀首日在干支表上己巳以后的第39位,查干支顺序表为戊申。以此类推,经二十蔀,又为己巳。因此,构成“正月己巳朔旦立春”的大循环周期为:

  76×20=1520年

  由此可以知道,《颛顼历》以“正月己巳朔旦立春”为历元,可以排出1520年不同的朔闰表。1520年以后,周而复始,永无止期。[4]

  以上所述是相对的时间概念,它能够解决历表的排列次序。但要复制出晚秦汉初行用过的历表,还必须推求出绝对的时间概念。因此,《颛顼历》的某一入蔀年究竟相当于历史上的某一年,必须准确无误,才能符合我们提出的要求。

  据《新唐书·历志·大衍历议》所述:“鲁宣公十五年丁卯岁,《颛顼历》第十三蔀首,与《麟德历》俱以丁巳平旦立春,至始皇三十三年丁亥,凡三百八十岁,得《颛顼历》壬申蔀首,是岁秦历以壬申寅初立春。”[5]《新唐书·历志》的记载,把《颛顼历》的排列次序和历史年代结合起来,这就解决了绝对年代的问题。当然,这个完整的《颛顼历》二十蔀循环周期,是把它的行用期上推下衍的结果。显然,《颛顼历》的开始实行绝不会早到公元前1506年。在战国秦汉间,制历者大约是从公元前366年甲寅蔀开始计算的。《淮南子·天文训》就说:“凡二十纪一千五百二十年,大终,日月星辰复始甲寅元。”实际上,只要绝对年代吻合,从这二十蔀的任何一点开始计算,其结果也都必然是相同的。为和《颛顼历》行用期间接近,并结合历史记载,本文即采用从甲寅蔀开始计算的方法。

  上述的推论是依据可靠的历史资料和基本的计算,自然不误。前人的研究已认识到并采用过上述的方法。那么,按理用这个方法排出长年历表,应该和历史上真正实行过的历表一致,应该和历史记载以及出土资料中的记日干支符合。然而事出所料,简单地用这个方法编制朔闰表,仍然会遇到许多难题,常常和已有的资料相矛盾。这是因为在《颛顼历》行用的过程中,还有一些曲折复杂的情节。从来恢复《颛顼历》的历表没有获得完全成功的症结,正是因为对这个曲折复杂的情节认识不足的缘故。

  山东临沂银雀山出土的《元光历谱》[6]告诉我们,汉初的历谱包括置闰、连大月、分至点(节气)、岁首等项目。以下对这几个项目分别进行讨论,最后再根据研究的结果来编制长年历表。

  二、闰年设置法

  《颛顼历》岁实为日,朔策为日,每一年相当于十二个月还多一些:

  这就是说,每年设十二个月,还有日的尾数[7],称为大余。为了使季节和年度相适应,平均二年多需要加一个闰月,加闰月的年度称为闰年,为方便起见,我们称这十九年的单位为闰章,以区别于前文所述十九年一章的朔章。在一个闰章中,闰年的安排有一定的规律,即:“三岁一闰,六岁二闰,九岁三闰,十一岁四闰,十四岁五闰,十七岁六闰,十九岁七闰。”[8]这就是说,在一个闰章中,第三、六、九、十一、十四、十七、十九年为闰年,因为在这七个年度大余累积超过朔策。其余则为平年,平年积余小于朔策。

  1,故凡积余在日以上者,加本年大余必然超过朔策,所以该年必置闰。

  2、置闰以后大余必在10日以下,故凡积余在日以下者,即以十月为岁首的《颛顼历》冬至在十一月十一日以前,上一年必定是闰年。

  《颛顼历》的岁实是以立春为标志,即从第一年的立春到第二年的立春为一个回归年。但置闰始终是以冬至为标志,因为置闰的目的是为了调节季节,而只有冬至是实测季节的标准时刻,其它节气是由冬至推算出来的。闰章从十一月朔旦冬至开始计算,朔章从正月朔旦立春开始计算,两者不可能始于同一年,这就使《颛顼历》的置闰关系复杂化了。

  另外,据《汉书·武帝纪》、《郊祀志》记载,武帝元鼎五年(前112年)“十一月辛巳朔旦冬至”,据《汉书·武帝纪》、《律历志》记载,“武帝元封七年(前104年)十一月甲子朔旦冬至”。按表三所得第二项规律,这两个年度的积余为零,[13]小于日,可知这两年的前一年必为闰年。因此,元鼎五年的前一年元鼎四年(前113年)和元封七年的前一年元封六年(前105年)都是闰年。合上表,共得十七个有绝对年代的置闰年。

  因为每一个闰章中,闰年的次序是固定的,所以用已知的闰年可以推出其它闰章的未知的的闰年。公式如下:

  已知闰年±n·19=闰年

  按公式,前105年是已知闰年,那么:

  前105+1·19=前124年

  前105+2·19=前143年

  前105+3·19=前162年

  前105+4·19=前181年

  前105+5·19=前200年

  ……

  据上面的公式推算的结果,前124、143、162、181、200各年都应该是闰年。但是把这个推算的结果和表四所列的资料对照考察,可以发现是有矛盾的。据表四第五、第九项记载,前199、180年是闰年,推算结果前200、181年是闰年。如果两者都对,那就出现了连续两年置闰的情况,而这在当时是绝对不可能的。产生这个矛盾的原因是因为在前162年的时候,闰章有了改变。为了易于区别,我们称改变前的闰章为第一式,改变后的闰章为第二式。除用前105年这个闰年,其它已知闰年推出的未知闰年都符合闰年排列的次序。

  闰章和朔章相比较,第一式第十三年是朔章第一年,第二式第五年是朔章第一年。这个改变只需把第一式第九年置闰改为第八年置闰就行了。具体说来,把原应在前161年的置闰提前一年,改在前162年置闰,就形成了改变闰章的结果。

  何以在公元前162年发生改变闰章的现象呢?这是一个颇为费解的问题。原来这和汉文帝时期发生的关于制度改革的一场争论大有关系。

  汉朝初年,在制定法令制度方面,张苍曾起过不小的作用。他曾做过秦朝的柱下御史,对秦的各项制度都很熟悉。张苍本人对历法也深有研究,沿用秦的《颛顼历》就是他的主张,《汉书·张苍传赞》载“张苍文好律历,为汉名相,而专遵用秦之《颛顼历》”。到了汉文帝十年四(前166年),有人提出“宜改正朔,服色上黄”,[14]用土德代替秦的水德,全面改变制度。历法家公孙臣便是激烈的倡导者之一。改历之议,遭到张苍的强烈反对。两个历法流派经过了几年的论争,公孙臣一派终于占了上风,到文帝十六年(前164年,)“召公孙臣以为博士,草立土德时历制度,更元年。”[15]为了表示实行新的制度,文帝在前163年改元,次年即前162年提前一年置闰。这些显然是公孙臣制定的新的“时历制度”的内容。本来文帝是要大大改革一番的,但这个改革又因为别的原因没有再搞下去,结果除了更元年和减朔余25分(见下文)以外,就只是在历法方面留下了改变闰章这个痕迹而已。

  这是闰章改变的历史背景。至于说在历法史上,这一改革究竟有什么意义,当然还需要做进一步的说明。张苍是《颛顼历》的拥护者,公孙臣反对张苍,当属于和《颛顼历》相对立的另一个历法家的派别。闰章第二式即是后来完整化的《殷历》的闰章,可见公孙臣是属于《殷历》一派。《殷历》也是古四分历之一,岁实和朔策与《颛顼历》并无差别。《殷历》以十一月甲子朔旦冬至为历元,这和《颛顼历》以立春为历元是不同的。在《颛顼历》实行期间,由于闰章和朔章的交错,实际存在着两个历法上的冬至,一个是《颛顼历》以立春为标准计算出来的朔章的冬至,一个是作为置闰标准的闰章的冬至。闰章由第一式改为第二式以后,闰章的冬至便可以恒定在十一月了,但朔章的冬至便不能恒定在十一月。因此,闰章的改变在历法史上意味着闰章的冬至和朔章的冬至争夺恒定在十一月的位置,这也就意味着以十一月朔旦冬至为历元的历法要取代以正月朔旦立春为历元的历法,实即《殷历》对《颛顼历》进行的冲击。这正是公孙臣和张苍论争的实际内容。根据《元光历谱》来看,后来社会上通用的仍然是朔章的分至点(参看下文四),正是因为文帝中止了改革的缘故。这一次除了闰章的改变以外,公孙臣一派并没有获得更大的成绩。但以十一月朔旦冬至为历元毕竟是先进的和优越的,因而终于在武帝太初年间实行新历时,成为《太初历》的标准。

  总之,在《颛顼历》行用期间,置闰关系有第一式和第二式的变化。了解了这个变化,就克服了复制晚秦汉初长历表的第一个难题。

  三、连大月的排列

  《颛顼历》朔策为日,相当于二十九天半多一点,因此就产生了大月小月的问题。小月二十九日,大月三十日,互相间错,以使合朔始终在每月的初一。但是朔策并不恰好是二十九天半,它比日还要多日,这个尾数累积久了,就必须多置一个大月来加以调整。本来大月小月是间错排列的,这样就形成了若干个月以后,有两个大月相连的情况。大月相连称为连大月。正确地排列连大月也是复制历表的一个重要课题。根据日的小余来计算,每隔十七个月或十五个月便要设置一次连大月。

  可知每十七个月设置一次连大,但仍有小余日。这个小余需并入下一个月。第二次十七个月设置连大以后,又有小余日,两次余数积累为日。这个余数并入下一个月以后,经十五个月便要设置连大,这时,小余为日,因此,每十七个月设置连大时,余数为23,每十五个月设置连大时去余数35.从蔀首开始,每蔀共置五十八次连大。连大月的排列有它自己的周期。

  《颛顼历》每蔀开始按照表七的排列次序设置连大月,每蔀九百四十个月构成一次循环。以公元前366年正月甲寅朔旦立春为历元,用这个连大排列法,证明和现有资料是吻合的。

  四、分至点

  《元光历谱》载有十一月二十八日丙戌冬至、正月十五日壬申立春、六月三日戊子夏至、七月二十日甲戌立秋四个节气。因而我们知道当时通行的历谱上是注明节气的。这里有两个问题需要研究:一、这四个分至点在该日的哪一时刻?二、这四个节气是按照《颛顼历》历元正月朔旦立春来推算的,还是照按闰章的标志十一月朔旦冬至来推算的?弄清了这两个问题才能计算出其它各年的分至点。

  可以知道立春距夏至为136日23时15分。根据《元光历谱》可知,正月十五日立春距六月三日夏至中间相隔有135日,再加上正月十五日和六月三日本身,共得137日。由此可以得出结论,元光元年立春的时刻必定在正月十五日壬申这一天的0时0分至0时45分之间。假如立春在0时45分以后,夏至就将进入六月三日戊子以后的第二天,即六月四日己丑。这是和《元光历谱》相矛盾的,所以不能成立。

  按照正月朔旦立春为历元计算,由于岁实有尾数日,立春必将依次在第一年的0日,第二年的日,第三年日,第三年的日,第五年又为0日。合成小时计算,立春必在0时、6时、12时、18时这四点上。上面据《元光历谱》考察,元光元年立春在正月十五日壬申0时至0时45分之间,和由历元计算的立春点结合起来看,该年的立春在正月十五日壬申0时0分是毫无疑问的。

  确定了立春点,就可以按表八推算出该年其它各分至点的时刻。结果是冬至在十一月二十八日丙戌8时15分,夏至在六月三日戊子23时15分,立秋在七月二十日甲戌15时0分,和《元光历谱》的记载完全符合。见下表:

  表九

  另一方面,也可以用《颛顼历》的历元来求出元光元年的立春。公元前366年正月甲寅朔旦立春,下距元光元年为232年。积日为:

  日

  按照六十干支顺序为:

  从甲寅下数18正为壬申始,即壬申日0时0分。这说明,公元前366年甲寅朔旦立春,经232年以后,至元光元年的立春必为壬申日的开始,此和上文用《元光历谱》推算的结果恰相一致。[17]这就证明了《元光历谱》上标列的节气是按照《颛顼历》的历元推算出来的。

  下面再以闰章的冬至来和《元光历谱》所提供的分至点进行验算。据表五可以知道元光元年即前134年,属于闰章第二式的第九年。前文已说明,闰章第二式实际上就是《殷历》的闰章。前134年属于前199年开始的《殷历》丙午蔀第四章。丙午蔀首冬至距元光元年为:

  199-134=65

  积日为:

  365×65=23741日

  按照六十干支顺序为:

  23741-n·60=41

  从丙午下数41为丁亥日的日,即丁亥日6时。这里按闰章计算的结果,元光元年的冬至当在十一月二十九日丁亥的6时,而《元光历谱》明确记载冬至在十一月二十八日丙戌。可见,《元光历谱》的节气不是按十一月朔旦冬至计算的。由此可以得出结论:《元光历谱》的分至点即是朔章的分至点,亦即《颛顼历》的分至点,而不是闰章的分至点,亦即不是《殷历》的分至点。《颛顼历》元光元年冬至在丙戌日8时15分,《殷历》冬至在次日丁亥6时,这就是说,《殷历》的各节气恒定在《颛顼历》各节气之后21时45分。[18]关于分至点今时与940分日之折算。

  总之,《元光历谱》上的分至点是由《颛顼历》的历元推算出来的,而分至点的时刻也可以确定,因而,根据这个结果可以推算出《颛顼历》行用期间各年度的节气。

  五、秦以十月为岁首始自何时

  按照《史记》的说法,秦以十月为岁首始于秦统一中国,即秦始皇二十六年,公元前221年。《史记·秦始皇本纪》记载:“二十六年……始皇推终始五德之传,以为周得火德,秦代周德,从所不胜。方今水德之始,改年始,朝贺皆自十月朔。”《历书》、《封禅书》中也有类似的记载。但这个记载是不正确的。

  《吕氏春秋·季秋纪》:“季秋之月……为来岁受朔日”高诱注:“来岁,明年也。秦以十月为正,故于是月受明年历日也。”《吕氏春秋》成书于秦始皇八年,可见十月岁首不始于秦的统一。这个问题,清代许多考据家都曾经提出过,[19]例如汪曰桢说:“秦以十月建亥为岁首,闰在岁未,谓之后九月,不知始于何年。《史记·秦本纪》昭襄王四十八年十月在正月前,则未并天下时已如此矣。”[20]在《长术辑要》中,他把惠文王元年暂定为十月岁首的开始。在新发现的云梦秦简《大事记》中,有“(秦昭王)五十六年后九月”的记载,昭王时代置闰于后九月,这有力地说明了至少在秦统一中国的几十年以前,就实行了以十月为岁首的制度。可以肯定,《史记》的记载是有问题的。

  《史记》中记述秦统一以前有月分的资料,有时十月在正月前,有时十月在正月后,究竟是以十月,还是以正月为岁首,搞得相当混乱。造成混乱的原因有二。一是司马迁在写《史记》的时候,资料不足。他在《史记·六国年表》中就曾叹息说:“惜哉,惜哉!独有《秦记》,又不载日月,其文略不具。”因为材料太简略,为使叙述方便,司马迁无法严格地按照月份的次序来撰著每年当中的事件。二是《史记》在流传过程中又有伪误。例如《秦始皇本纪》中记载:“(秦始皇)四年,拔畅、有诡。三月,军罢。秦质子归自赵,赵太子出归国。十月庚寅,蝗虫从东方来,蔽天。”三月在前,十月在后,应当说明以正月为岁首。但这里的十月可以断言为七月之误。十和七两字在早期隶书以前的古文字中,极易互错。再者,十月无蝗灾,《两汉书》中的《五行志》共载蝗灾二十九次,绝大部分在夏秋,从未发生在十月。《史记·六国年表》秦始皇四年栏内,正作“七月,蝗蔽天下。”[21]十月校改为七月后,就不能据此否定十月岁首的可能性。

  我们再来看一看云梦秦简《大事记》中的另一条重要资料:“(秦昭王)卌五年,攻大野王。十二月甲午鸡鸣时,喜产。”在这里,“十二月甲午”和岁首的关系很大。同是昭王四十五年十二月,以正月为岁首和以十月为岁首,实际相差一年。

  如果以正月为岁首,昭王四十五年十二月指上表中的后一个十二月,如果以十月为岁首,则指上表中的前一个十二月。根据本书《颛顼历表新编》表二,后一个十二月朔为乙巳,甲午在乙巳后第五十,本月无甲午,而前一个十二月朔为辛巳,甲午为十四日。由此可见,昭王四十五年十二月只能是指上表中的前一个十二月,也就是说,当时实行的必定是十月岁首的制度,而不可能是正月岁首的制度。

  《颛顼历》既以正月朔旦立春为历元,在它行用之初,必然是以正月为岁首的。秦在奉行《颛顼历》的过程中,把岁首由正月改为十月。这个改动决不是秦统一中国以后才开始的,《史记》关于秦岁首制度的记载是颇有问题的。但改动岁首究竟始于何时,现在没有据以推论的资料。我们知道,至迟在昭王时期,这个改动已经进行了,因此,《颛顼历表新编》表一、表二暂定十月岁首从昭王元年开始。

  在历法史上这个改革有很大意义。当时,闰月置于岁末,正月岁首闰十二月,十月岁首闰九月。岁首改动以后,闰十二月改为闰九月,闰月从冬至和立春之间移到了冬至以前。正月岁首的《颛顼历》,冬至在十一月、十二月之间不停地变换。把闰月改在冬至以前,就使得冬至大大趋向于恒定在十一月了,参看下文《颛顼历表新编》表一、表二冬至点。这是《颛顼历》行用过程中的一大进步。

  六、关于历元的调节

  上文讨论了闰法、连大法、分至点和岁首,结合各蔀章的历史年代,应该能够制定出《颛顼历》实用的历表。但据此制出的历表,与历史记录和出土简牍中的朔日干支对比,可以发现仍有许多不相符合之处。

  古四分历以365.25日为岁实,和实际的回归年365.2422(密近)相比较,每年有0.0078日的误差。每130左右,约差一天。结果是日蚀往往是在晦日而不是在朔日出现。从公元前366年到秦始皇元年(前246年),已经过了120之久,天象和节气的误差已相当明显。要解决这个问题,便要调节历元,把原来设定的历元向前推和向后移若干年。当然调节历元以后,历史上的年月朔望全都发生了改变,这当然是行不通的。而当时的历法家便想出了另外一个简单易行的办法,那就是从特定年份开始,加减朔余。这样做可以和调节历元达到相同的效果。《汉书·律历志》记载汉武帝时进行历法改革,历法家邓平主张八十一分历,并采用“先藉(借)半日,名为阳历”的方法,以制定《太初历》,后来太史令张寿王指责《太初历》“亏小余四分 之三日,去小余七百五分”,可见当时历法家使用增减朔余的方法是确定的事实。另外,改变朔余往往在改朝换代或帝王登基时执行,这可能和统治者笃信阴阳五行的轮替也有一定的关係。

  1983年发现的张家山秦汉历法资料,1993年发现的关沮周家台秦始皇和秦二世历谱以及2002年发现的里耶秦代记日干支资料,[22]使我们在《元光历谱》的基础上,增加了许多新的资料。笔者对这些历谱进行深入研究之后,现提出一个新的推步方法:即秦代曾增加朔余四分之三日,进朔705分,其时间在秦始皇元年(前246年);汉代曾减少朔余四分之一日,但汉初退朔是分两次进行的,第一次退210分,时间在汉高帝元年(前206年),第二次退25分,时间在汉文帝后元二年(前162年)。用这一方法编制《颛顼历》的历表,和文献资料及考古资料可以达到高度的契合。两相印证,应该说其准确性绝非偶然。下文《颛顼历表新编》就是严格按照上述各准则制成的。如有新的秦汉历谱考古发现,对《颛顼历表新编》进行验证,或许还有误差,但可确信需要改动的空间,已经很小了。

  现对上列三项秦汉历法资料,再分别进行一些说明。

  首先是关于里耶秦简中的干支。其朔日干支起于秦始皇二十六年、止于三十五年,前后十年,共有十五项,验之《颛顼历表新编》,完全符合。系于朔日干支之下的非朔日干支,共有数十项之多,除一项为明显的误记外,并无错误。

  关于周家台秦代历谱。该历谱共存有四个年份,即秦始皇三十四年、三十六年、三十七年及秦二世元年。这四年的历谱可分两类。秦始皇三个年份为一类,秦二世元年为另一类。前一类可称之为私谱,应是由“民间治历者”[23]编制的。民间治历者水平高低不等,此或是初习者所为,目的是为个人记事方便,制作当在朝廷颁布下一年朔闰之前,故与官方历谱有很大的差别。这三年的历谱错误百出,多处违背历法的基本原理。例如秦始皇三十四年十一月十二月连大,七月八月九月又有三个月连大,这根本是不可能的。三十六年八月九月和三十七年十月出现三个月连小。四分历无连小,这里竟出现三个连小月,更是不可思议。这样的历谱是不能和历史上任何一年的正式官方历谱相一致的。但秦二世元年历谱则另当别论,其书写格式、书写材料与前三年历谱迥然不同,其内容符合制谱规律,大小月也间错无误,当是官方发布的正式历谱。故下文《颛顼历表的验证》只收录秦二世元年历谱,其它三年则不予采用。

  关于张家山历谱。张家山历谱现存汉高帝五年至吕后二年共十七年的朔日干支,其中有残缺。但根据现存朔闰干支,可将缺项补齐。在张家山历谱中,汉高帝九年七月朔日应为丙申,历谱误为丁酉,[24]其它各项均准确无误,亦符合制历原理。在张家山汉简中,有一部分称为《奏谳书》的,附有若干秦汉朔日干支。其中秦始皇六年八月朔日丙子一项甚为重要。按《颛顼历》古法,该月朔日为乙亥,朔余387,《奏谳书》记为丙子,在己亥后一日。940——387=553,即朔余至少增553,才能使朔日为丙子。由此可见始皇初年确有进朔的举措。依同样原理,可知汉初有减朔的情况,否则和张家山历谱中的汉初朔日干支便无法吻合。这里须注意两点。其一,在朔余改变时,会出现大小月衔接一次性异常;其二,只改变朔余而不调节历元,会使部分蔀首章首与立春日不再重合。下列表十二即是改变朔余后,《颛顼历》实际行用的蔀首和章首。

  表十二

  蔀

  章

  甲寅蔀

  公元前336-前291

  甲寅章(0)

  前366-前348

  癸巳章(705)

  前347-前329

  癸酉章(470)

  前328-前310

  癸丑章(235)

  前309-前291

  癸巳蔀

  前290-234

  癸巳章(0)

  前290-前272

  壬申章(705)

  前271-前253

  壬子章(470)

  前252-前234

  △前246

  癸巳蔀

  前233-前177

  癸巳章(0)

  前233-前215

  壬申章(705)

  前214-前196

  △前206

  壬子章(260)

  前195-前177

  壬辰蔀

  前176-前105

  壬辰章(25)

  前176-前158

  △前162

  辛未章(705)

  前157-前139

  辛亥章(470)

  前138-前120

  辛卯章(235)

  前119-前105

  1.△为改变朔余的年代。

  2.由于朔余的改变,已使原蔀章产生错乱,参看表一和表二。

  七、余论

  通过对《颛顼历》的研究,使我们寻找解决整个古代中国历法史的门径,也得到了一些新的启发。

  《颛顼历》本身是多元的,而不是单元的,就是说组成历法的各因素并不是统一的。置闰的标志是十一月朔旦冬至,月朔的标志是正月朔旦立春,这两项历法的主要因素就不能协调如一。此外,岁首先是起于正月,后是起于十月。在《颛顼历》的行用过程中,先后三次调节朔余。由此可见,用太初以后的单元历法来推断《颛顼历》及其以前的历法,势必不能得出圆满的结果。现在有理由认为,战国以前的历法,诸如殷、周、春秋时期的历法必然也是多元的。历法的各因素必然有各自的发展过程,各因素之间的协调关系也必然比《颛顼历》更为原始。

  《颛顼历》虽然是多元的,但组成历法的各因素并不是孤立的和静止的。《颛顼历》行用的过程就是多元历法向单元历法的发展过程。正月岁首改成十月岁首,历元的调节,闰章由第一式改成第二式,从历法史上说来,都是以冬至点为标准进行的改革,都是逐步走向以十一月朔旦冬至为单一历元,并使冬至恒定在十一月的不同发展步骤。这就是太初改历的基础,换句话说,《太初历》的实行乃是《颛顼历》发展的必然结果。因此,可以说《颛顼历》以前是多元历法的单项因素的发展阶段,《颛顼历》是多元历法向单元历法发展的过渡阶段,《太初历》则是单元历法的完成阶段。认识了这一层,对古代中国历法史的研究,或许是不无帮助的。

  为什么在历法发展的过程中,逐步走向以冬至为单一的标准点呢?因为只有冬至才是实测回归年的理想时刻。形成了以冬至为标准点的单元历法以后,实测天象以校正历法就成了天文历法家的主要任务。因而它又反过来推动了对天象的观测和研究。总之,历法的制定基于天文学的进步,历法在实践中的改革和提出的要求又推动了应用天文学的发展。秦汉以来,中国天文学发展迅速,这未尝不是一个重要原因。

  注释:

  [1]《汉书·律历志》卷二一。

  [2]清梅文鼎《历学疑问》,见《勿庵历算全书》、《梅氏丛书》。

  [3]《续汉书·律历志》注引蔡邕《月令论》。

  [4]1520年古称一纪。如果配合年的干支,三纪构成一个更大的循环周期,称为一元。《颛顼历》行用期间,干支纪年法还没有系统地形成,主要使用岁星纪年法。它和本文论述的问题,可以分开,为避免复杂化,本文尽可能不涉及纪年法上的问题。

  [5]《新唐书·历志》中有《大衍历议》十二篇,保存了古代历法的有关资料,所述基本上是可信的。但它采用了经过刘歆整理的岁星超辰纪年法,并以后汉时折算的干支纪年法为准,却是不符合古代的实际情况的。另一方面,又载“《颛顼历》上元甲寅岁,正月甲寅晨初合朔立春”,即年、月、日、时都以建寅为准,也是后人理想化的结果。不足为凭。

  [6]见《文物》1974年第3期。

  [7]《淮南子·天文训》“岁有余十日,九百四十分日之八百二十七”,正是这个意思。

  [8]《汉书·律历志》卷二一。

  [9]见《文物》1976年第6期,《云梦秦简释文》(一)。

  [10][11]见《文物》1974年第6期。

  [12]《汉书·景武昭宣元成功臣表》:“特辕侯乐……元朔元年后九月丙寅封。”元朔元年无闰,此处所记实误。元朔元年的前一年为元光六年,元光六年在《史记》、《汉书》中有三处后九月的记载,当为闰年无疑。如果元朔元年再置闰,那就成了连续两年置闰,而这是不可能的。《史记·建元以来侯者年表》:“(元光)六年后九月丙寅,侯乐元年。”《史记》的记载可以纠正《汉书》的错误。所以《汉书》中的这一条闰年资料本文表四不采。详见本文集《<汉书>历校辨疑》44.

  [13]汉代朔日冬至,因举行祭礼,即称朔旦冬至。故余分未必为零,但不超过一日。

  [14]《汉书·郊祀志》卷二五。

  [15]《汉书·张苍传》卷四二。

  [16]为了易于明瞭和便于计算,各节气的时刻均以一日24小时为准。当时历法上以一日为940分,可和24时折合。

  [17]西汉初年记有立春资料的还有《淮南子》一书。《淮南子·天文训》:“淮南元年冬,太一在丙子,冬至甲午,立春丙子。”清钱大昕《潜研堂文集·跋<淮南子>》卷二七、钱塘《淮南天文训补注》都以此文有伪夺,应为己酉冬至,甲午立春。淮南元年为文帝十六年,公元前164年。本文据《元光历谱》推算当年戊申冬至,甲午立春,见《颛顼历表新编》表二。钱氏叔侄所推算虽不尽合,但推断此文有误则是。

  [18]按汉《颛顼历》节气计算,武帝元封七年十月二十九日癸亥20时15分冬至(参看《颛顼历表新编》表二),后移21时45分即是十一月一日甲子18时,为《殷历》的冬至。《太初历》以该年的十一月一日甲子0时作为历元,和《殷历》比较弃余18时,即弃余日,亦即四分之三日。昭帝元凤年间,太史令张寿王曾根据《殷历》指责《太初历》说:“《太初历》亏四分日之三,去小余七百五分。”(《汉书·律历志》)这正说明各历的节气互有差异。

  [19]参见清阎若璩《尚书古文疏证·第八十三》卷六之上,赵翼《陔余丛考》卷十六,顾观光《算剩初编》,汪曰桢《长术辑要》卷三。

  [20]清汪曰桢《长术辑要》卷三。

  [21]宋司马光《资治通鉴》卷六从《六国年表》作七月,不作十月。又参见清顾观光《算剩初编》。

  [22]参见张家山二四七号汉墓竹简整理小组编著《张家山汉墓竹简》(释文修订本)2006年文物出版社出版、湖北省荆州市周梁玉桥遗址博物馆编《关沮秦汉墓简牍》2001年中华书局出版、王焕林著《里耶秦简校诂》2007年中国文联出版社出版。

  [23]汉武帝时议造《太初历》,就曾征集民间治历者,凡二十余人,方士唐都,巴郡落下闳最为著称。见《汉书·律历志》卷二一。

  [24]此丁酉为丙申之误,已经多位学者指出。另《汉书·高帝纪》:“(九年)夏六月乙未晦,日有食之。”《汉书·五行志》:“(高帝)九年六月乙未晦,日有食之。”两处记载相同。六月乙未晦,七月朔日当为丙申。可证张家山历谱此处确误。

  (原载《云南教育学院学报》1987年历史专辑

  2008年6月收入本文集时做了部分修改)

  
更多

编辑推荐

1心理学十日读
2清朝皇帝那些事儿
3最后的军礼
4天下兄弟
5烂泥丁香
6水姻缘
7
8炎帝与民族复兴
9一个走出情季的女人
10这一年我们在一起
看过本书的人还看过
  • 绿眼

    作者:张品成  

    文学小说 【已完结】

    为纪念冰心奖创办二十一周年,我们献上这套“冰心奖获奖作家书系”,用以见证冰心奖二十一年来为推动中国儿童文学的发展所做出的努力和贡献。书系遴选了十位获奖作家的优秀儿童文学作品,这些作品语言生动,意...

  • 少年特工

    作者:张品成  

    文学小说 【已完结】

    叫花子蜕变成小红军的故事,展现乡村小子成长为少年特工的历程。读懂那一段历史,才能真正读懂我们这个民族的过去,也才能洞悉我们这个民族的未来。《少年特工》讲述十位智勇双全的少年特工与狡猾阴险的国民党...

  • 角儿

    作者:石钟山  

    文学小说 【已完结】

    石钟山影视原创小说。

  • 男左女右:石钟山机关小说

    作者:石钟山  

    文学小说 【已完结】

    文君和韦晓晴成为情人时,并不知道马萍早已和别的男人好上了。其实马萍和别的男人好上这半年多的时间里,马萍从生理到心理是有一系列变化的,只因文君没有感觉到,如果在平时,文君是能感觉到的,因为文君不是...