第一章 绪论
《史记·历书》云:“盖黄帝考定星历,建立五行,起消息,正闰余。”《尚书·尧典》云:“期三百有六旬有六日,以闰月定四时,成岁。”传说时代是否存在一个岁实为366日的推步历法,已无从稽考,但从殷墟卜辞来看,即便商代晚期的历法也还很粗疏。
常玉芝先生的研究表明,殷商时期的历法中月有大小之分,并排有闰月,由此说明殷商历法是一种阴阳合历。但是,这一时期的历法中朔望月长不规范,闰月设置不规则的缺陷还是很明显的。常玉芝在《殷商历法研究》中举出多版卜辞证明这一时期存在一月含四个癸日的情况,由此说明殷商历法中的大月至少有31天,同样,卜辞中存在一月仅含二个癸日的情况,这说明存在29天的小月。不过,常玉芝认为殷商历法中存在少于29天的月份是有问题的,她所举的卜辞为:
辛未卜,争贞:生八月帝令[多]雨。
贞:生八月帝不其令多雨。
丁酉日,至于甲寅,旬有八日。九月。
——《合集》10976正
她认为,辛未日距丁酉日二十七天,如果假设辛未日是七月的最后一天,丁酉日为九月的首日,那么八月也只有壬申日至丙申日的二十五天。但从卜辞来看,甲寅日当在九月无疑,而丁酉日则不一定在九月。尽管如此,一个太阴月的长度超过31天,仍然是很粗疏的。
另外,整个殷商时期年终置闰法与年中置闰法是并行的,而且多次出现过连闰,卜辞中记作“十四月”。如《合集》22847:“戊午卜……在十四月”,晚商青铜器《小子 簋》(《殷周金文集成》4138)中亦有“在十月四”。而属武丁时期的子组卜辞更有“十三月”、“十四月”见于同版的卜辞,即《合集》22897。显然失闰后连续置闰是这一时期的特征,这些都是历法粗疏的表现。由此看来殷商时期的历日不是通过严格推步所得。
西周末期出现了“朔”,似乎能够看做具有推步历法体系的标志,这是因为相对“朏”而言,“朔”日看不见月相,只能通过计算得到。不过,从《春秋》和《左传》中的朔闰记载推测,晚至春秋时期,先民的推步体系还很不完整。陈美东先生在《鲁国历谱及春秋西周历法》一文中,依据《春秋》所载年、月、日名干支对春秋时期的历法推步进行了详细分析。这一研究表明,春秋时鲁国的历法中连大月的设置有15、19、21等三种小周期组合的四种长周期,尚不是完全规整的推步历法,尤其在置闰问题上,需要经由时常的实测工作进行调整。
但是,春秋晚期大约昭公二十年(前522年)以后的历家应该能够掌握这一岁实数据和19年7闰的闰周。《左传》记载了两次冬至发生的时间,一次为僖公五年(前655年)“春王正月辛亥朔,日南至”,一次为昭公二十年(前522年)“春王正月己丑,日南至”。古人观测冬至基本方法是在地平面立表,测量日中(正午)时的表影,表影最长的一天就是冬至日。由于测量方法简陋,误差较大,所得至日可能有两三天的误差。考虑到这两次实测“日南至”相距133年,这种误差会被大大降低。故此,当时的历家应该能够据次计算得到的岁实数据。钱宝琮先生对此有过论述,并且认为昭公二十年(前522年)以后的历家还能够算得19年7闰的闰周。即使假定《左传》中的这两次“日南至”记录是《左传》的作者通过计算补入的,也能说明至少在《左传》成书的战国中期以前人们已经掌握了四分术的基本数据。
以日为岁实的四分术是早期的推步历术,这一点古代西方文明也是如此。公元前433年,雅典天文学家默冬(Meton)提出了19年7闰的闰法,即著名的“默冬章法”。由于默冬在19年设置235个朔望月,共6940日,这样他得到的回归年长度为365.2632日,相应的朔望月长度为29.53085日。后来人们发现这种历法在经过一个周期,即19年后,新月的出现延迟四分之一日。卡利普斯(Callipus)在公元前334年提出新法,取19年的四倍76年为一周期,并将总日数减去一日,即76个回归年含940个朔望月,共27759日。这与中国早期四分术的基本数据完全相同。四分术之所以成为最早的推步体系,是因为日这一数据具有简单接近回归年长度的特性。
中国在战国、秦至汉初行用四分历法,由于起算时采用的历元不同,便出现了黄帝历、颛顼历、夏历、殷历、周历和鲁历等所谓的“古六历”,“古之六术,并同四分”,且“古术之作,皆在汉初周末,理不得远”。更进一步,《史记》、《汉书》、《后汉书》中也有秦用颛顼历,汉承秦制、历用颛顼的记载。而令人困惑的是,简牍中见到的秦至汉初的实朔干支却与上述古六历不符。故此,重新考察这一时期的历法成为必要。
在历史上,秦至汉初历法成为一个学术问题契机于学者对这一时期朔闰表的考索。我国现存的历法术文最早的要算《汉书·律历志》所载的“三统历谱”和《史记·历书》所载的“历术甲子篇”,但“历术甲子篇”只给出了四分术一蔀之中各月朔干支及小余和气干支及小余,并没有给出历法的计算起点,也就是“历元”,因而它只是一个“四分历术”通谱。
宋代刘羲叟作长历已经不能判明汉初历法原貌,遂认为“汉初用殷历,或云用颛顼历,今两存之”。清人汪曰桢《历代长术辑要》同时用殷历和颛顼历推算,认为“以史文考之,似殷术为合”。
这里的殷历和颛顼历的起算历元是按唐代《开元占经》中的记载给出的,按照《开元占经》所记,颛顼历上元乙卯至今(开元二年甲寅)2761019年,人正己巳朔旦立春,殷历上元甲寅至今(开元二年甲寅)2761080年,天正甲子朔旦冬至。
由于刘羲叟和汪曰桢所根据的实朔资料来自《史记》、《汉书》中的相关记载,且非常有限,今天以历简资料看来,其结论是不对的。
直到陈垣的《二十史朔闰表》,还是以殷历来排谱的,他在该书的《例言》中写道:“汉末改历前用殷历,或云仍秦制,用颛顼历,故刘氏、汪氏两存之,今考之纪志多与殷合,故从殷历。”后来董作宾所作《中国年历简谱》也是参照陈垣的《二十史朔闰表》,不过他在汉初按照正月为岁首排谱。
不难看出,在制定秦至汉初朔闰表的过程中,无论是古之宿儒,还是今之大师,都因资料所限,不曾深入探讨过当时的历法。
但随着一批批历简的出土,这种情况有了明显的改观,学界已经不再局限于考得当时的历谱,而是力图搞清当时的历法。历法若明,则历谱自然就可推得。其学术标的也悄然发生了变化,原先为了探讨一份精准的历朔表,供文史工作者查阅,而现在则是在科技史的视域下,力图还原当时的历法数据,研究当时历学达到的水平,而朔闰表则成了副产品。
我们所说的历简主要有以下三批:
1、1972年山东临沂银雀山出土的汉武帝《元光元年历谱》;
2、1993年湖北荆门关沮乡周家台30号秦墓出土的秦始皇三十四年(前213年)、三十六年(前211年)、三十七年(前210年)和秦二世元年(前209年)历谱;
3、1983年湖北江陵张家山247号汉墓出土的汉初高祖、惠帝和高后三朝共17年的历谱。
由于历谱为当时的实历记录,是研究历法难得的第一手资料,每一批资料公布后都能引发一轮研究热潮,结论也会发生变化,下面我们对张培瑜、陈久金、陈美东、张闻玉、黄一农、饶尚宽等几位主要研究者取得的成果稍作介绍讨论。
张培瑜。(一)在元光元年历谱公布后,张培瑜先生发表了《汉初历法探讨》、《新出土秦汉简牍中关于太初前历法的研究》等文章,认为根据元光元年历谱可以判定其各月朔小余和气小余应该满足表1所列之关系。
表1 张培瑜所排元光元年历谱气朔小余取值范围表
注:*元光元年历谱合朔小余较颛顼历大430—487。在四分术中,朔小余是以940为分母的。
尤其重要的是,张培瑜证明了这一历谱中气干支决定了气小余取值的唯一性。这是因为,立春节和夏至节相隔9个节气,时间间隔为
而壬申距离戊子为137天(含壬申和戊子),若立春壬申的小余大于或等于1(分母是32),则夏至就落在戊子后一日己丑,由此说明该历谱中立春节的小余取值只能是0,从而其他气小余的取值也是唯一的。
张培瑜将讨论得到的气小余值和朔小余取值(范围)联立后,恢复了一种新的历法,这一历法在公元前672年五月甲子朔旦芒种夜半齐同,元光元年(前134年)与之相距538年,入丁酉蔀7年。各月朔小余如表1所示。张培瑜认为这种历法的置闰标准是这样的:汉初实行以冬至在十一月为置闰标准;文帝后元前后,改为以雨水在正月为置闰标准。
他还认为,银雀山2号汉墓出土竹简所涵古历就是秦始皇三十年所改行的新历,它是一种四分历。这可能就是历史上说的汉初所行用的“秦之颛顼历”。而此前秦国使用的是颛顼历。
(二)在周家台30号秦墓竹简历谱和张家山汉墓竹简惠帝三年历谱公布以后,张培瑜经过研究调整了自己的看法,根据表2的计算,他指出:由汉元光元年和惠帝三年历谱,我们知道了汉初实际行用的历法,它推步合朔的朔小余要比殷历大152—183,比颛顼历大456—487。由秦始皇三十六、三十七年和秦二世元年历谱知道,秦末历法的合朔干支和时刻与殷历和颛顼历不相同,它的合朔时刻比殷历要大335—357分,比颛顼历大639—661分。如果考虑校改后的秦始皇三十四年历谱,合朔小余比殷历要大335—345分,比颛顼历大639—649分。(可参看表2)“因此,我们初步认为秦王政以及秦统一六国前后所用为‘秦历’(即由周家台竹简所记的四年历谱推得的历法)……秦历的推步:公元前1779年正月甲子夜半朔旦立春”。其中云梦秦简《大事记》秦王政“廿年七月甲寅”中的“七月甲寅”与该历不符,但原简该处字迹漫漶,或以为当是“十月甲寅”。
表2 张培瑜所排周家台秦简历谱朔小余取值范围表
张培瑜的结论是:1、秦历和汉初历法皆与汉传颛顼历不合,也都不是殷历;2、秦汉初历法是不一样的;3、目前无法准确判断具体改历的时间;4、战国颛顼历仍然是一个谜。
(三)在里耶秦简部分公布后,张培瑜根据里耶秦简和周家台秦简专文讨论了秦代历法。他根据表3指出里耶秦简15个朔日合朔小余比颛顼历大533—730分。
表3 张培瑜张春龙所排里耶秦简历朔小余取值范围表
资料来源:表中里耶秦简资料主要来自王焕林《里耶秦简校诂》,北京:中国文联出版社,2007年。书中所引里耶秦简凡编号形如“J1(16)9”者,均引自该书,下不出注;里耶秦简未公布残简材料来自张培瑜、张春龙《秦代历法和颛顼历》,湖南省文物考古研究所《里耶发掘报告》,长沙:岳麓书社,2007年,第736页。
张培瑜等进一步指出:
“至此,我们可以用两种方法推算秦国的历日:(一)采用汉传《颛顼历》,将步朔小余增加639—649,以小雪在十月为设置后九月的依据;(二)采用我们复原的秦历:上元甲子乙卯,近距上元公元前606年,历元己巳朔旦霜降。以小雪在十月为设置闰月(后九月)的标准。(或上元甲子乙未,近距上元公元前2126年,历元气朔建正和设置闰月的标准同上)……
当然,因为资料仍感不足,所以不敢说我们复原的秦代历法一定全部准确无误。至此,我们可得出以下几点:
1、秦历(秦代历法)不是现在大家所说的《颛顼历》。
2、由于秦代历日与汉武帝元光元年(前134年)历日、张家山西汉初年古墓出土的汉初二十余年的历日不容,秦代历法和汉初历法是不一样的。
3、如果确如文献所言,‘秦用《颛顼》’的话,那么当时的《颛顼历》,与汉传《颛顼历》是不同的。秦代《颛顼历》要步朔小余大于《颛顼历》600余分(以940为分母)。也就是说,是更后天的。由此看来,《颛顼历》确实‘数有更易’。
4、秦代历法是后天的。是时《颛顼历》后天的数值约为0.37日……秦代历法的后天数值约为1.05日……
5、秦代历法是以小雪在十月为设置后九月的依据,而不是以冬至在十一月为置闰标准的……
6、确如历史所言,秦统一中国后,并未改历。我们复原的秦历很可能就是战国后期一直到秦亡秦国所施行的历法。”
(四)2007年张培瑜根据目前所见的全部历日资料,包括上面提到的三批主要历简在内,详细讨论了秦和汉初的历法。
根据张家山汉墓竹简历谱复原汉初历法:近距上元甲子辛酉(公元前1020年)。历元正月己巳朔旦立春。张培瑜也知道这种历法不能满足元光元年历谱中的十二月朔干支,原简为戊子朔,根据上述历法推得己丑朔。
他还打破四分术给出一种全新的历法,这种历法的朔策比四分术略短,大约为天到天都可以满足要求。后者可以采用类似三统历法的推步方法。一蔀1249月,蔀日36884天,月长29.53082466日。每月大余加29,小余加663分。日1249分,小余满1249进位大余,15蔀为一统,四统为一元,统15蔀,18735月,553260天,日复甲子。元4统,74940月,2213040天,6059年。故岁实为365.2496734天。15蔀名蔀首日名:甲子,戊申,壬辰,丙子,庚申,甲辰,戊子,壬申,丙辰,庚子,甲申,戊辰,壬子,丙申,庚辰。
由于四分术是讨论秦汉初历法最基本的前提,张培瑜恢复的后一种非四分术历法,只能看做是一种假设条件下的讨论。
张培瑜恢复的秦历是这样的:秦历上元甲子乙卯(同颛顼历),近距上元公元前606年(乙卯),历元己巳朔旦霜降。置闰以小雪在十月为设置闰月(后九月)的标准。
或:上元甲子乙未,近距上元公元前2126年,历元气朔建正和设置闰月(后九月)的标准与上同。即,己巳朔旦霜降,置闰以小雪在十月为设置闰月(后九月)的标准。张培瑜并未讨论秦代历改问题,很显然他是用这种历法来涵盖秦王政元年至二世三年(前207年)这一时段的。
陈久金、陈美东。陈久金、陈美东先生曾经在元光元年历谱公布后共同发表了《临沂出土汉初古历初探》、《从元光历谱及马王堆帛书<五星占>的出土再探颛顼历问题》等文章,他们认为根据元光元年历谱恢复的历法应该是在颛顼历(设元在公元前366年)的基础上朔小余余分增加470,这种历法适用于秦王政九年至太初改历前,其中公元前162年置闰法有变化,但他们在秦王政时期是以正月为岁首排历的。此后各批历简公布后,未见他们有专文论及。
张闻玉。张闻玉先生曾经以《元光历谱之研究》为题详细讨论了元光元年历谱,认为秦颛顼历实为殷历,汉初历法是以公元前202年为计算起点的四分历,只不过为了把汉高祖五年(前202年)子月癸亥朔(小余778)改为甲子朔(小余0)而人为将朔小余加大了162分。
另外,饶尚宽先生认为,秦之以寅正十月为年始的“颛顼历”,实为建寅为正的四分历,即殷历甲寅元,只不过每年起自十月(亥)终于九月(戊)而已;汉初袭秦正朔,行用“秦颛顼历”,即以寅正十月为岁首,九月为岁末,置闰后九月的殷历甲寅元,到武帝太初元年曾进行了首次历法改革。
黄一农。相比张培瑜、陈久金、陈美东等人,黄一农先生的研究起步较晚,他几乎是在上述三批历简公布后进入这一领域的。关于秦代历法,他认为这一时期有过三次历改,“时机有可能是为了配合秦王政亲政(九年四月)、称帝(秦始皇二十六年)和二世即位此三大政治事件”。秦王政初期或使用古六历中之殷历,但加入进朔法(借半日),自十年起改用颛顼历,秦始皇二十六年改用殷历,秦二世元年(前209年)又改回殷历加进朔法,并改“正月”为“端月”,以突显历法之新。关于汉代历法,汉高祖称帝之前,仍沿用秦二世借470/940日的古殷历;五年二月称帝之后,则使用张苍所制定的借499/940日的古颛顼历;文帝后元元年以迄元封六年,则用借470/940日的古颛顼历(可能由公孙臣等人所修订)。
上述研究大致可以分为两派,其中一派是将秦至汉初历法限定在古六历的范围内求解,主要以陈久金、陈美东、张闻玉、黄一农为代表,这一派主张秦和汉初的历法是以古六历为基础,主要是古颛顼历和古殷历。由于这两种历法显然不能和历简相容,作为修正,他们主张当时采用了进朔法,即将朔小余在计算时人为加大470、441或499分,这样做的目的是将蔀首月调为大月。另外,关于颛顼历是甲寅元还是乙卯元,他们之间也有不同的看法。下面分别申论之。
(一)借半日法。借半日法仅见于《汉书·律历志》,是武帝太初改历时邓平所论:
于是皆观新星度、日月行,更以算推,如闳、平法。法,一月之日二十九日八十一分日之四十三。先藉半日,名曰阳历;不藉,名曰阴历。所谓阳历者,先朔月生;阴历者,朔而后月乃生。平曰:“阳历朔皆先旦月生,以朝诸侯王群臣便。”
这是在太初历的术法下讨论的,太初历的朔策为。《汉书》所说的“先朔月生”,乃是一种实际新月发生在前,历面朔发生在后的现象,也就是所谓的历面天象发生在实际天象后的历法后天。由此,从清人姚文田、顾观光就开始怀疑秦至汉初的历法可能采用了人为加大朔小余的借半日法,主张当时可能借用了441分,陈久金、陈美东主张当时所借为470分,黄一农则主张秦至汉初历法进行过多次改动,各次借用的数值可能不同,分别有470、441或499分。加大441或499分并不刚好等于半日,论者称其为进朔法,虽于史无据,但考虑到四分术朔策为,加大441分后也有“进半日”的效果,499分从技术上利于处理数据,并且也能达到“进半日”的效果,故此两值也有可能被采用。其实,怀疑借半日法真正实施过的并不乏其人,中科院自然科学史研究所的薄树人先生就认为藉(借)半日法是邓平改历时的幌子。
(二)颛顼历甲寅元和乙卯元。关于颛顼历的历元,历史上一直有甲寅元和乙卯元之争,《新唐书·历志》引《洪范传》云:“历记始于颛顼上元太始阏蒙摄提格之岁,毕陬之月,朔日己巳立春,七曜俱在营室五度。”这里所讲的颛顼历历元是甲寅年正月己巳朔日立春。《淮南子·天文训》:“太阴元始建于甲寅”……“日行一度……反复三百六十五度四分度之一,而成一岁。天一元始,正月建寅,日月俱入营室五度。”所说也是甲寅元。但《后汉书·律历志》所引刘洪、蔡邕等人所论颛顼历已经是乙卯元了。陈久金、陈美东根据马王堆汉墓帛书《五星占》认为,这是由于岁星纪年超辰造成的,干支纪年法是汉初改历后行用的,此后用干支纪年法回推岁星纪年法就有一年之差。而张闻玉则认为,颛顼历乙卯元是断取殷历甲寅元第十六蔀第62年为元造成的。但两说均以公元前366年人正甲寅朔旦立春为甲寅蔀蔀首,故其步朔没有差别。只是对颛顼历甲寅元和乙卯元形成的原因解释不同罢了。
以上两个问题是主张“古六历论”的学者讨论的问题,但张培瑜从未就借半日法和颛顼历乙卯元甲寅元问题发表过看法,他似乎并不认同借半日的存在,而乙卯元还是甲寅元对推朔影响不大,这或许是张培瑜不论及此两点的原因。大致说来,张培瑜是从历简出发,打破古六历甚至四分术的框架讨论问题,自成一派而与“古六历”论者相颉颃。另一方面,就未发表文章讨论新出历简一事来看,除后起的黄一农外,古六历论者几乎放弃了原先的主张。而黄一农对一些新出历简的系年和学界差异较大,且对秦至汉初历法的分段太多,流于琐碎,其对秦至汉初历法的主张非片言只语所能讨论,可参看本章附录二《周家台秦简历谱系年与秦时期(公元前246—前207年)历法》。
张培瑜虽然放弃古六历,从历简出发排出了与时下所见历日资料完全相合的历谱,但他所主张的“固定节(中)气”置闰规则却很有讨论的必要。
在第二章表11中,我们列出各家所排历朔表的错误,其中张培瑜的历朔表排定于所有历简发现后,因而没有错误。但正如上面提到的,张培瑜关于秦至汉初历法的分段与置闰规则有必要重新讨论。
总之,秦至汉初历法疑窦丛生,并不像有些学者所认为的那样比较清楚了。有鉴于此,本书以出土历简为中心,对上起秦王政元年(前246年)下至汉武帝太初元年(前104年)的历法及其改革给出一个明确的答案,即对各时段历法的步朔历元、基本参数和置闰规则做出翔实的考订,对每次历改时主要历法变量的调整做出说明,作为证验依据,书中排出秦至汉初(公元前246—前104年)朔闰表(含历面后天数据)。
为了阅读方便,在此将全书思路及各个阶段的研究方法简述如下:
第一步,从文献和简牍资料中搜集秦至汉初的所有历朔资料,按其性质分为朔干支、日干支和气干支。
第二步,以简牍资料为中心对所搜集的历朔资料进行辨析。基本方法是:将相同的合并;将讹误的经过严格证伪后去除;对经过简单分析就可以补出的历日尽可能补齐。经过这样一个去伪存真的过程,就得到一个当时实际行用的历表。这个历表囊括了这一时段所有可见的实用历日,其真实性和唯一性是毋庸置疑的。
第三步,对历日密集的三组历简朔小余取值范围进行分析,来确定秦至汉初不同历法的行用时段。以周家台秦简历谱、张家山汉简历谱和银雀山汉简(元光元年)历谱为研究对象,对连大月前的朔小余取值范围进行讨论分析,从而得到一个较窄的数值区间,以此为基准向前向后推排,以校验其与实历是否相洽,据此就能探明该种历法的适用时段。
第四步,分析岁首建正与置闰规则。根据《史记》、《汉书》中的纪、表部分及《汉纪》的记述,很容易分析出当时的岁首和建正。置闰规则的讨论比较复杂,大致思路是这样的:首先根据文献和简牍资料中的“后九月”记载找出一部分闰年,然后根据不能连闰、不能连续出现一年一闰等四分术的基本置闰原则,将隐含的闰年找出,形成一个闰年表。以此表为基础,通过分析个别典型闰年中无中(节)气之月与闰月的对应情况就可以判明置闰规则,具体说来,就是要分析后九月所在年与对应的无中(节)气之月所在年的关系。
第五步,在对不同时段历法的历元、岁实朔策、岁首建正和置闰规则有了准确认知后,即可恢复出秦至汉初不同时段的历法,进而排出这一时期的朔闰表。
这项研究的意义大致有以下几点:
1、有助于完善早期历法的研究。四分历术是我国早期科技文化的瑰宝。其核心内容为取为岁实,以19年7闰为闰周(其他数据如朔策等都可由此推得)。由于所取历元、岁首、建正等参数不同而形成不同的历法体系,所谓“古六历”即是因此而来。根据文献记载,秦一统后行用颛顼历,西汉太初元年(前104年)改历以前,承秦制亦用颛顼历,但也有学者以为是殷历或其他类型的四分历,战国、秦至汉太初改历以前的历法是学术界一直未能解决的问题。这一研究将为秦至汉历法的认识增添新的内容,并为进一步探索战国历法提供一个新的学术支点。
2、可以为文史研究提供一份精准的秦至汉初朔闰表。目前常见的几种朔闰表都不同程度的存在与实历不符的错误,而有的历表竟在张家山247号汉简历谱、周家台秦简历谱和里耶秦简历日公布之后印行,这在一定程度上误导了读者。从这个意义上讲,学术界迫切需要一个精准的秦至汉初朔闰表。
3、有助于出土文献的系年断代。目前许多新出简帛文献所属年代不明,对于一些含有历日或与历简伴出的文献,通过历谱是可以进行断代系年的。
4、有助于秦汉时期术数的研究。《汉书·艺文志》中术数为六略之一,而天文、历谱是术数略的前两类,是其他四类术数的根基。只有对秦汉时期的历法有一个准确的认识,才会更好的理解和研究秦汉时期的各种术数。