随州孔家坡汉简《历日》及其年代
作者:武家璧  發布時間:2006-10-10 00:00:00

(首发)

  摘要:孔家坡汉简《历日》的编排方式为前此出土历谱所未见,以最少文字排出全年历日并最大限度保证同月干支与其月名在同一栏。根据简文记载的立春和朔日干支,对照本文推算的《颛顼历》立春数据表,可唯一确定历谱年代为公元前142年,汉景帝后元二年。
  关键词:孔家坡汉简  《历日》 《颛顼历》
   
  《随州孔家坡汉墓简牍》[1]出版,是学术界的一件盛事。该书分上卷《随州孔家坡汉墓发掘报告》、下卷《随州孔家坡汉墓简牍》两部分,简牍出土于湖北省随州市北郊孔家坡八号汉墓(孔M8)。整理者根据内容性质将简牍分类定名为竹简《日书》、《历日》及木牍《告地书》三部分,其中《告地书》载有年名(“二年”),《历日》(旧称历谱)保存有一年内十个月的朔日干支,以及冬至、立春、夏至等历注,为简牍的准确断年提供了科学依据。在发掘报告整理过程中,承蒙发掘领队及报告整理者张昌平先生以《告地书》及《历日》释文见示,并告知学者对其年代有不同意见。我初步复原《历日》后认为当是汉景帝后元二年(公元前142年)的历谱。报告正式出版后又蒙昌平先生以新书见赠,嘱我将孔简年代的意见写成文章发表,以资学界讨论。因兹撰成此文,申述我判断孔墓简牍年代的基本依据,并对《历日》的编排方式提出个人意见,以就正于方家。
  一 《历日》的编排方式
  孔简《历日》的编排方式为前此出土历谱所未见,它以最简洁的方式、最少的文字将一年内的历日干支全部排出:以日为经,以月为纬——在60支竹简的简头各著一干支以为经,其下横列六栏为纬,横栏、竖列共分出360格;每栏容前、后两月,将月名及其大小填入朔日格中,历注则填入相应的历注格内。朔日格在某干支简,则表示该月朔某干支,如简文“正月大”在甲辰简,表示正月甲辰朔;“二月小”在甲戌简,表示二月甲戌朔等。历注同此,如冬至在甲辰简的十月栏,表示十月甲辰冬至;立春在庚寅简的十二月栏,表示十二月庚寅立春;夏至在丙午简的五月栏,表示五月丙午夏至等。
  《历日》虽然没有勾出横栏线,但巧妙利用中间的纬编线将上三栏与下三栏显著分开,横栏竖列360格一望可知。秦汉颛顼历以十月为岁首,把闰月置于年末称“后九月”,若无闰月则360格可以排满一个阴历年。一个阴历年包含六个小月、六个大月共354天(不含闰月),如果年内出现连大月或连小月则共355或353天,360格比阴历年天数多出若干格。把多出的空格置于年首前还是置于年尾后,涉及历谱的排列方式及整体效果。整理者以十月为岁首排列历日是非常正确的,遵循这一原则符合秦汉颛顼历的实际,但采用年首无空格的作法,将空格一律置于尾后,这样排列的效果并不好。
  其一,导致第一栏排入三个月名,而最后一栏只有一个月名,使《历日》在排列形式上不齐整。
  其二,“十二月大”原简本来在第二栏,释文将其排入第一栏后,其下的双月二、四、六、八月均应上移一栏,因此整理者认为“《历日》的‘十二月大’、‘二月小’、‘四月小’、‘六月小’、‘八月小’等项在抄写时均各自下移了一栏的位置。”这等于说简文抄写者抄错了位置,实际上原简历谱排列非常整齐规范,不必做任何移动即可圆满解释。
  其三,释文的排列方式导致大约将近总数一半的、同一月内的日干支与其月名不在同一栏,立春、腊、初伏、中伏等历注与其所属月名不在同一栏;双月月名除十月外都不靠近栏首反而靠近栏尾,查对历日、历注所属月名十分不便等。
  笔者采用在年首前置空格的方法,空格多少以最后一栏的月名朔日格居于栏首为限,其余空格置于年尾,得历谱如表1。这样排出的历谱,月名朔日格分布在栏首及栏中附近,最大限度地保证同月干支、历注与其月名在同一栏;使查看某月之月名、日序、干支、历注等,一目了然。
              表1 孔家坡汉简历谱复原表
  
  《告地书》的年代
  孔家坡八号墓出土鼎、盒、钫仿铜陶礼器组合,在湖北云梦、江陵等地出土同类组合汉墓的年代都在文景时期[2]。孔M8木牍《告地书》云
  二年正月壬子朔,甲辰,都乡燕佐戎敢言之……正月壬子,桃侯国丞万移地下丞
  此条具备年序、月名、朔干支等三要素,本是利用历朔断代的理想材料,但不幸的是本条朔干支有误。这是很容易证明的:命起甲子算外(干支序数以甲子为0,乙丑为1,丙寅为2…),得甲辰为40,壬子为48;如果“正月壬子朔”(正月初一为壬子)则月内必无甲辰,因自壬子至甲辰跨52日,大大超过一个月的长度;反之若月内有甲辰,则必非“壬子朔”,因甲辰在壬子前8日。如果“壬子朔”是正确的,则甲辰必在上月的22、23日或者下月的23、24日。因此简文“正月壬子朔甲辰”是自相矛盾的,不是朔干支有误,就是朔后的日干支有误,二者必居其一。
  据牍文云“正月壬子” 桃侯国丞移书地下丞,可知正月内有壬子,按已往出土的告地策文书,地上丞一般不在朔日移书地下丞,可知正月非朔壬子。我提出一种可能:即《告地书》的抄写者可能将朔干支与日干支的顺序颠倒了,正确的写法应该是“二年正月甲辰朔壬子”,与《历日》中的“正月大”朔日格在甲辰简相合,壬子为正月初九日。于是整个历谱当为“二年《历日》”。查张培瑜《三千五百年历日天象》[3]汉景帝后元二年(公元前142年)正月甲辰朔,故《告地书》“二年”当为汉景帝后元二年。
  三 《历日》的年代
  《历日》没有年序,《告地书》有年次,但与《历日》并无直接联系,尤其是在朔日可能出错的情况下,将《告地书》的“二年”与历谱相联系,只是基于一种可能的假设,证其必然有赖于其他证据。此证据就是历注“十二月庚寅立春”。推证如下。
  1 对“近距历元”的说明
  秦及汉初施行《颛顼历》,为传世典籍及出土文献记载所证明,故用《颛顼历》进行推证。推算方法本于“四分术”,起算点为《颛顼历》的近距历元。
  《宋书·律历志下》载祖冲之谓“古之六术,并同四分”。先秦古六历及后汉《四分历》以周天为三百六十五又四分之一度,太阳日行一度,故一年为三百六十五又四分之一日,因有余数(日法)四分之一,故称之“四分术”。《颛顼历》是先秦古六历之一,属于古四分历。“四分术”以十九年为一“章”,十九年七闰称为“章法”;四章为一蔀,二十蔀为一纪,三纪为一元。一元4560年,气、朔、年干支复原。
  《颛顼历》的上元为“正月己巳合朔立春”,这样的记载见于《淮南子·天文训》、《尚书·考灵耀》、刘向《洪范五行传》、《续汉书·律历志》、唐《开元占经》、《新唐书·律历志》载僧一行《大衍历议·日度议》等处。《颛顼历》以立春为历法年的年始,各项周期都以立春为起算点,因此在历法推算过程中须“命算己巳”,即以己巳为起始点对六十干支进行编号,以己巳为0编序,称为“己巳算外”;以己巳为1编序称为“己巳算尽”。下文计算均起己巳算外。实际上“己巳”只是《颛顼历》的一个蔀首,历元名称用岁星纪年法为甲寅元,用干支纪年法为乙卯元(因岁星超辰所致)[4]。唐《开元占经》载《颛顼历》至开元二年(714年)的上元积年为2761019算外,减605元(605×4560=2758800年)得到距离当时最近的历元为公元前1506年。即前1506年是乙卯元己巳蔀首:年名乙卯,己巳合朔立春,气、朔齐同。
  《开元占经》所载上元积年使《颛顼历》近距历元与历史年代对应起来。这样的记载还有《新唐书·律历志》载一行《日度议》:“鲁宣公十五年丁卯岁,《颛顼历》第十三蔀首,与《麟德历》俱以丁巳平旦立春。至始皇三十三年丁亥,凡三百八十岁,得《颛顼历》壬申蔀首。是岁秦历以壬申寅初立春。” 以《开元占经》所载上元积年验算得:鲁宣公十五年(前594)为《颛顼历》丁巳蔀首,秦始皇三十三年(前214年)为壬申蔀首,《开元占经》与《新唐书》所载互相吻合。
  《续汉书·律历志》载《殷历》甲寅元与《颛顼历》乙卯元的冬至、立春干支,并“课两元端”得其“闰余差”、“朔小余”及“中节之余”诸数据等,严敦杰先生命算己巳(以己巳为0),依据“四分术”验算,所得皆与《续汉书·律历志》合,因谓“《开元占经》所引历元数字,可为信史。” [5]
  2 对立春干支的推算
  兹命算己巳(以己巳为0),孔简《历日》庚寅立春,得干支序数为21。
  按“四分术”,自历元起第T年的立春干支序数是[6]
  T - [60]r = T -[60]r
  式中[60]r 表示六十甲子周期的整数倍;T是自近距历元(前1506年)起算的积年,可换算为公元年数
  t = T – 1506
  依上式算得《颛顼历》自壬申蔀首(前214年)至太初元年(前104年)以前110年内的立春干支与公元年份,列如表2。
 
            表2 《颛顼历》立春干支与公元年份对照表
  
  将表2中的立春干支序数转换为散点图(图1),检视立春点分布,见其整齐规则,可知表中数据无误。十分显著地可见,在长达110年的时距内,只有三次“庚寅立春”:
  ⑴ 公元前199年,汉高祖八年;
  ⑵ 公元前142年,汉景帝后元二年;
  ⑶ 公元前119年,汉武帝元狩四年。
  有三种途径可以唯一确定孔简《历日》“庚寅立春”的年代:
  其一,根据陶礼器组合的特征,将年代限制在文景时期(前179—前141)或略晚,则可唯一确定在公元前142年;
  其二,根据《告地书》的“二年”,可唯一确定在汉景帝后元二年;
  其三,对照朔日干支,可唯一确定在前142年、景帝后元二年(详下)。
  再以立春干支序数为起点,计算前142年的冬至和夏至干支,看是否与孔简《历日》相合:
  冬至在立春之前三个平气,其干支序数为
  21– 3 ×( ÷ 24 ) + [60]r =
  大余35是甲辰序数,与孔简《历日》甲辰冬至合。
  夏至在立春之后九个平气,其干支序数为
  21 + 9 ×( ÷ 24 ) – [60]r =
  大余37是丙午序数,与孔简《历日》合(此处不用“借半日法”)。
  查张培瑜《三千五百年历日天象》,可知汉景帝后元二年(前142年)正月甲辰朔,实历冬至在癸卯14时21分,立春在庚寅4时05分,夏至在丁未20时44分。孔简《历日》的立春与实历合,冬至甲辰在癸卯后一日,夏至丙午在丁未前1日。二至历日与实际天象误差在±1日左右,这样的精度是比较好的。因为古人得到冬、夏至日主要通过晷影观测,如果实际立竿测影,由于影端比较模糊,所测与真正的冬、夏至日相差一两天,是很难发现的。

  
             图1 《颛顼历》立春干支与孔简年代示意图
   
  3 对朔日干支的推算
  按“四分术”,自历元起第T年的立春平月龄(立春时刻离开立春月平朔时刻的距离)是[7]
  T – []r = T – [] r
第T年的立春月平朔干支序数为
  立春月平朔干支=立春干支 立春平月龄
如果立春干支数小于立春平月龄,则加六十后减之。其他自立春月后第N月的平朔干支为
  第N月平朔干支=立春月平朔干支 + [] N – [60]r
依此式算得公元前142年各月平朔干支与《颛顼历》合,其他立春干支合者,朔干支不合。兹将前142年历推平朔大小余及“借半日法”所推干支、孔简朔干支等列如表3。
 
          表3 《颛顼历》与孔简《历日》朔干支对照表

  孔简《历日》十月、十二月的朔干支缺失或不清楚,释文将其补齐。其中十二月甲戌朔可确定,因简文明载十一月小、乙巳朔,自乙巳顺数29天,次日十二月必朔甲戌无疑;又正月朔甲辰,则十二月必为大月;释文在甲戌简朔日格中补上“十二月大”是正确的;只是它应排在第二栏靠近栏首的位置,而不应排在第一栏的栏尾。十月据上表所推当朔乙亥,为大月,释文在乙亥简所补“十月大”正确。
  根据表3所列公元前142年的平朔干支大小余数据,如果只取大余配属干支,那么历法所推与孔简《历日》朔干支有一半不合;如果按照“借半日法”,小余超过“日法(940)”一半以上(即小余≥470)则进位加一日,那么《颛顼历》与孔简朔干支完全符合。这再次证明前辈学者关于汉初《颛顼历》在计算朔干支时践行“借半日法”的论断[8],是正确的。
  4 闰法与月序问题
  秦汉《颛顼历》以立春为正月,以十月为岁首,可称为“亥首寅正”历,楚历才是标准的“亥正”历。孔简《历日》的立春干支庚寅,距离立春月的朔干支甲戌十六日,按四分历当年立春应在正月,而孔简《历日》的立春却在十二月,这是为什么呢?笔者认为此与《颛顼历》改变闰法有关。
  《颛顼历》置闰规则原本十分简单而有规律。据“十九年七闰”法,一章之内立春月龄按大小依次为0、。月龄大于18者有七个,故立春月龄≥必须置闰。无所谓“无中置闰”或“无节置闰”,闰月一律置于年尾,称为“后九月”。闰月在一章之内的安排表现为3—3—3—2—3—3—2的规律性,如《汉书·律历志》载三统历置闰规律云“三岁一闰,六岁二闰,九岁三闰,十一岁四闰,十四岁五闰,十七岁六闰,十九岁七闰”。即民间所谓“三六九、一四七”的置闰规律。
  上所论孔简《历日》是景帝后元二年(前142)历谱,据《礼记·月令》载“季秋之月……为来岁受朔日”,则《历日》必制订于景帝后元元年(前143年),而于年终九月颁授于郡国(据牍文随州时为桃侯国)。按上述规律《颛顼历》在前143年不该有闰,但据史籍记载推断这一年却设置了闰月。《史记·汉兴以来将相名臣年表》载有景帝后元二年“六月丁丑御史大夫岑迈卒”,按历推当年六月无丁丑,只有上年置闰使本年月份错动一月才可能出现六月丁丑。关于此条记载,清邹汉勋认为与其他资料不合因而不可靠[9],日本新城新藏认为与元朔五年、元封六年的闰法改变具有相同规律,因而是可靠的[10]。陈久金、陈美东先生研究自秦始皇九年(前238)至元封六年(前105)由史载可推知的三十六个闰年,得出结论:自文帝后元二年(前162年)始《颛顼历》突然改变置闰规律为3—3—2—3—3—3—2制(把“三六九、一四七”改为“三六八、一四七”制),其原因可能与文帝后元元年(前143年)公孙臣等的改历活动有关[11]
  孔简《历日》证明景帝后元元年确实设置了闰月,使原十月变成后九月,原十一月变成十月、原十二月变成十一月,原正月变成十二月等。因此孔简十二月立春相当于未变闰法以前的正月立春。孔简《历日》的出土可以终止对《史记》年表景帝后元二年资料的怀疑,使《颛顼历》改变闰法得到更早的实物验证。
  再以孔简《历日》的安排,来看看改变闰法是否合理。立春一般在正月上中旬,当立春月龄≥18又612/940日则置闰,使立春不超出正月,即立春不能延迟到二月是置闰的目标。公元前143年按历推乙酉立春,月龄4又623/940日,按历推不当置闰;设置后九月则使前142年变成十二月十七日庚寅立春(立春月龄15又510/940日,合借半日法),比往年正月立春提前一个月份。设置闰月的目的是避免节气延后,而为了避免延后而适当提前是允许的。因此前142年提前至十二月立春是允许的,而且这样处理的积极效果十分明显——闰后的孔简《历日》标明夏至在五月五日,冬至在十月晦(紧贴十一月朔日)。一般情况下,夏至为五月中气,冬至为十一月中气,置闰可使夏至、冬至适当提前。如果前143年不置闰,那么次年夏至在六月五日,冬至在十一月底。两相比较,变法者更加合理,因为不变闰法会使夏至延后出现在六月,不符合人们的生活习惯。这是《颛顼历》自身的问题,容俟专门讨论,此处不赘。
  综上所述,孔家坡汉简《历日》是汉景帝后元二年(前142)的历谱,气、朔、闰与《颛顼历》吻合;年序与《告地书》吻合;冬、夏至干支与实历密近等,殆无可疑。

  (编者按:本文收稿日期为2006年10月9日。)


[1]湖北省文物考古研究所、随州市考古队:《随州孔家坡汉墓简牍》,文物出版社,2006年。
[2]同[1]第33页。
[3]张培瑜:《三千五百年历日天象》,河南教育出版社,1990年。
[4]陈久金、陈美东:《从元光历谱及马王堆帛书天文资料试探颛顼历问题》,载考古学专刊甲种第二十一号《中国古代天文文物论集》第86页,文物出版社,1989年。
[5]严敦杰:《释四分历》,载考古学专刊甲种第二十一号《中国古代天文文物论集》第106页,文物出版社,1989年。
[6]同[5]第104页。
[7]同[5]第105页。
[8]同[4]第87~90页。
[9]邹汉勋:《颛顼历考》,《续修四库全书》子部第1036册第102页,上海古籍出版社。
[10]新城新藏:《东洋天文学史研究》(沈璿译),中华学艺杜,1938年。
[11]同[4] 第96~99页。
© Copyright 2005-2021 武漢大學簡帛研究中心版權所有