孔子诞辰的推算 – 徐文新

–中山大学中文系博士生    徐文新  

1999年,江晓原先生根据《谷梁传》的记载,提出孔子诞生于公元前552年10月9日,《科技日报》1999年9月6日以《揭开孔子诞辰之谜》为题作了报道,江先生此说也见于《世界科学》2000年5期的《天文历史年代学初论》一文。值得质疑的是,江先生的推算采用的是儒略历,而不是格里历。

另一方面,传统的祭孔日期定在农历八月二十七日,据说出自孔氏家谱。孔氏家谱这一日期应该是来自是《史记》,而《史记》不及《谷梁传》可靠。不过,国民政府曾据此定夏历八月二十七日作为教师节,后来又邀请历法及考据专家把孔子诞辰换算为公历9月28日,并以这天为孔子诞辰纪念日。值得注意的是,国民政府所邀请的历法专家得出9月28日,是采用格里历推算的。

我认为在没有发现更多史料的情况下,孔子诞辰应以《谷梁传》为依据,而运用格里历推算,那么孔子诞辰合理的日期应该是公元前552年10月3日。  

  孔子的诞辰争论的史料  

关于孔子诞辰的早期记载,见于《公羊传》、《谷梁传》和《史记》。

《公羊传》:“(鲁襄公)二十有一年,春,王正月,公如晋。夏,公至自晋。  秋,晋栾盈出奔楚。九月庚戌,朔,日有食之。冬,十月,庚辰,朔,日有食之。十有一月,庚子,孔子生。”

《谷梁传》:“”(襄公)二十有一年,春,王正月,公如晋。夏,公至自晋。  秋,晋栾盈出奔楚。九月庚戌,朔,日有食之。冬,十月,庚辰,朔,日有食之。庚子,孔子生。”

《史记·孔子世家》:“鲁襄公二十二年而孔子生。”“孔子年七十三,以鲁哀公十六年四月己丑卒”。

关于《公羊传》的“十有一月,庚子”,阮元《十三经注疏校勘记》曰:“按作‘十月’者是也。考杜氏《长历》,十月庚辰小,十一月己酉大,十一月无庚子,庚子乃十月二十一日也。齐召南说。”说明前人已经认定《公羊传》有误了。

关于《史记》的“鲁襄公二十二年而孔子生”,《史记索隐》曰:“《公羊传》‘襄公二十一年十有一月庚子,孔子生’。今以为二十二年,盖以周正十一月属明年,故误也。”司马贞试图从三正的角度为调和二说。梁玉绳以之为大谬:“从来三正推法,只以后月属前月,并无以前月属后月。周正十一月第能为夏正九月,未闻倒而为夏正之正月者。”1

历史上,认同“襄公二十一年”的主要有贾逵、何休、刘恕、马端临、宋濂、崔述、钱大昕等,认同“襄公二十二年”的则有杜预、袁枢、郑樵、朱熹、黄宗羲、阎若璩、梁玉绳、崔适等2,可谓旗鼓相当。

宋濂专门写了一篇《孔子生卒岁月辨》,曰:“《公羊》《谷梁》二氏传经之家也,传经之家当有讲师以次相授,且去孔子时又为甚近,其言必有据依。司马迁固良史,则后于《谷梁》《公羊》者也,吾则无征乎尔。”3

梁玉绳《史记志疑》则曰:“从《公》、《谷》者,《索隐》、《外纪》、《黄氏外纪》及宋濂《孔子生卒岁月辨》之类也。从《史》者杜注《左传》、《拾遗记》、《续博物志》、《古史》、《大纪》、《路史》、朱子《论语序说》、《通鉴前编》、余姚黄氏宗羲《南雷文约》之类也。”

梁氏又曰:“二十一处是已酉,二十二年是庚,当从《史记》为的。其徵有三:襄二十一年日食,必非生圣人之岁,一也。《公》、《谷》皆口授,《公羊》著于汉景之刊,《谷梁》显于汉宣之代,历世既久,宁得无讹,二也。

杜注哀十六年传云‘仲尼至今七十三’。《五代史冯道传》,道卒年七十三,时人皆谓与孔子同寿,则非七十四可知,三也。《困学纪闻》两存其说,以为不可考。《索隐》深悼孔子生年莫定,致寿数不明,不然矣。若生月必当从谷梁在十月,以杜《长历》推之,是年十一月无庚子,况三《传》经文于十月既书庚辰朔,则庚子在十月,倘作十一月,则一月只二十日,大不可通。且陆氏《公羊释文》曰:‘上有十月庚辰,此亦十月。一本作“十一月”,又本无此句。’是知《公羊》传写讹异,非灼然可据者。

至生日必庚子无疑,不但《公羊》书之,《南齐书》臧荣绪以宣尼生庚子日,陈《五经》拜之,固确证也。综而论之,年宜依《史记》,月宜用《谷梁》,日则庚子。《路史余论》定为八月廿七日孔子生,又引《五行书》谓生庚戌年二月二十三日甲申时,斯不足辨耳。”以此为线索,我们可以看到大量的争论材料。

现在看来,梁玉绳孔子二十二年生的理由没有一条是坚实的,当然也不只是他一人,其实东汉以降诸人,无论持哪一说,均没有更多的理由。在没有更多证据的时候,以《谷梁传》为依据要合理一些。

《公羊》《谷梁》二传均有鲁襄公二十一年九月、十月频食的记载,《谷梁传》杨士勋疏曰:“据今历无有频食之理,但古或有之。”现代天文学证明,频食虽有,但鲁襄公21年即公元前552年没有,儒略历该年8月20日在曲阜可以看到一次食分达到0.7的日偏食,这一天的纪日干支恰为庚戌,这就与《公羊传》和《谷梁传》中的“九月庚戌朔,日有食之”的记载吻合,至于《公羊》《谷梁》二传所载该年十月庚辰朔日食无疑有误了。

  孔子诞辰应定为103

据报道,江晓原先生为了确定这次庚戌日食的公历日期,采用了“儒略日”。公元前552年发生日食的那个庚戌日的儒略日为1520037。而《谷梁传》中说庚子日孔子生,从庚戌到庚子是50天,儒略日1520037加上50天,即1520087,江先生换算后认为孔子诞生于公元前552年10月9日。

但是,问题就在这里,此处的公元前552年8月20日和10月9日均是儒略历日期,而不是格里历日期,而儒略历是有相当误差的。

我国古代用干支纪日,今人读古籍时总想知道是几月几日。儒略日也不符合人们的使用习惯,所以儒略日也存在一个转换为通用日历的问题。通用历日与儒略日的转换公式4是:

a =   (14- month)/12

y =   year + 4800 –  a

m =  month + 12a –  3

格里历的日期转换公式:

JD = day + (153m+2)/5 + 365y + y/4 –y/100 + y/400 –32045

儒略历的日期转换公式:

JD = day + (153m+2)/5 + 365y + y/4 – 32083

注:1.公元纪元以前的年份要改为负数,如:10 BC = -9.

    2.所有除法均为整除法,余数舍去。

我们把前552年8月20日分别代入上面公式,如果是格里历则JD=1520043,如果是儒略历则 JD=1520037.

我们把前552年10月9日分别代入上面公式,如果是格里历则JD=1520093,如果是儒略历则 JD=1520087。

足以说明,江先生的前552年8月20日、前552年10月9日均是儒略历日期。如上所述,儒略历有较大误差。如果我们要纪念孔子诞辰若干周年,应该采用更精确的格里历来计算,那么孔子诞辰的儒略日1520087换算成格里历是公元前552年10月3日。  

从回归年的长度来看,格里历1999年10月3日的儒略日是2451455,格里历1999年10月9日的儒略日是2451461

{1999―(―551)}*365.2422=2550*365.2422=931367.61

2451455-1520087=931368

2451461-1520087=931374

可以看出,格里历即公历1999年10月3日与孔子诞辰的儒略日1520087(格里历公元前552年10月3日,即儒略历公元前552年10月9日),相差931368天,与2550个回归年的值931367.61天相近,而格里历1999年10月9日与那一天相差931374天,比2550个回归年多出6天。那么1999年10月9日,纪念孔子诞辰2550周年是有误了。  

从太阳在黄道的位置来看也是如此,取曲阜地区的平均经度117°02’、纬度35°49’计算:

儒略历公元前552年10月9日12时即格里历是公元前552年10月3日12时,儒略日1520086.67,太阳在黄经189°52’47″。

格里历公元1999年10月3日12时,儒略日2451454.67,太阳在黄经189°30’53″。

格里历公元1999年10月9日12时,儒略日2451460.67,太阳在黄经195°25’47″。

显然10月3日太阳在黄道的位置更接近189°52’47″。

夏商周断代工程中,江先生认为的牧野之战日期公元前1044年1月9日,同样是儒略历的日期,如果用格里历来计算,应该是公元前1045年12月30日,日干甲子。  

  农历827的来源  

晋明帝太宁三年诏四时祀孔子。据说以后历代加增,每年的祭孔活动大小有50多次。但以春秋两次大祭为主,尤以秋祭为重。将每年的大祭定在农历八月二十七日孔子诞辰日,据说是出自出自孔氏家谱,国民政府曾据此定夏历八月二十七日作为教师节,后来又邀请历法及考据专家把它换算为公历9月28日,值得注意的换算成是9月28日采用的是格里历。下面,我们来分析农历八月二十七日是如何得来的及其可靠性:

如梁玉绳所述那样,把《史记》的“鲁襄公二十二年”和《谷梁传》的“十月庚子日”拉到一起,就是“鲁襄公二十二年十月庚子日”。再根据“三正说”把周正“十月”改为夏正“八月”,把日干“庚子”换算成数字纪日“二十七”,“鲁襄公二十二年夏正八月二十七”就出来了。

但是,《史记》仅记载“鲁襄公二十二年”,无孔子生日的干支,而《谷梁传》的“十月庚子日”是“鲁襄公二十一年”,这样把两者给合起来,显然不合理的。

  从历法发展来看,战国以前是干支纪日,“二十七日”这种数字纪日不大可能是西汉前期的记载。

殷墟甲骨刻辞采用干支纪日。

徐锡台先生说:“周原甲骨文中出‘既吉’,‘既魄’,‘既死’,说明在周文王时就已用月相补充殷的干支纪日方法”。5而《尚书》及出土铜器铭文中大量使用既生霸、既望、既死霸来描述月相辅助纪日。夏商周工程阶段性成果倾向于“月相四分”,并归纳出西周时期置闰规律:1.西周历法采用“朔”或“朏”为月首。认识朔以前,当以“朏”为月首。2.西周历法的建正多为建子、建丑。3.西周历法一般采用年终置闰。这说明当时的历法水平还没达到“四分历”的程度。

《后汉书·律历志》贾逵论历曰:“以《太初历》考汉元尽太初元年日食二十三事,其十七得朔,四得晦,二得二日。新历七得朔,十四得晦,二得二日。以《太初历》考太初元年尽更始二年二十四事,十得晦。以新历十六得朔,七得二日,一得晦。以《太初历》考建武元年尽永元元年二十三事,五得朔,十八得晦。以新历十七得朔,三得晦,三得二日。”《汉书·五行志》:“凡汉著纪十二世,二百一十二年,日食五十三,朔十四,晦三十六,先晦一日三。”《后汉书·律历志》:“自太初元年始用《三统历》,施行百有余年,历稍后天,朔先于历,朔或在晦,月或朔见。”

从西周和两汉历法水平来看,春秋时期当不能准确预推朔日,但春秋所记载的“日有食之”均在朔日,春秋中的朔日能与日食相吻合的原因何在?我们推测,春秋时期只能大体按一个月29天有余,30天不足定出朔日来进行“告朔”,并随时根据发生的日食来调整朔日,如《说文》所云“日蚀则朔,月蚀则望”。《春秋》中与日食相关的“朔日”,并不是事前推算出来的,而是发生日食之后,把“日食”记载于日之“干支”之后,并书上“朔”,所以才有那么准确,也算是“事以系日”的内容之一吧。

朔日不定,也就无法用数字纪日。数字纪日当在《历术甲子篇》所记载的“四分历”历法出现之后。利用四分历的“月朔旦甲子日法”才能比较准确地定出朔日及月的大小,此后数字纪日才流行开来。从存世文献看,我国以数字纪日大概当从西汉后期才开始,至魏晋才日见通行起来。楚简中尚是干支纪日,疏勒河汉简中已有数字纪日,其年代一般认为是东汉,也有人认为“疏勒纪年简上下时限为公元前98年至公元137年”6,但也不会早于《谷梁》、《公羊》二传。孔氏家谱的“八月二十七”不大可能是于西汉前期的记载,当是后人的追记。  

下面列出与孔子诞辰相关的鲁襄公2123年历表:

夏正 周正 朔日干支 儒略日 月大小 儒略历 格里历   
21.7 21.9 庚戌 1520037 30 8.20 8.14 九月庚戌,朔,日有食之
21.8 21.10 庚辰 1520067 30 9.19 9.13 庚子,夏正8月21, 格里历10.3
21.9 21.11 庚戌 1520097 29 10.19 10.13   
21.10 21.12 己卯 1520126 30 11.17 11.11   
21.11 22.1 己酉 1520156 30 12.17 12.11   
21.12 22.2 己卯 1520186 29 1.16 1.10   
22.1 22.3 戊申 1520215 29 2.14 2.8   
22.2 22.4 丁丑 1520244 30 3.15 3.9   
22.3 22.5 丁未 1520274 29 4.14 4.8   
22.4 22.6 丙子 1520303 29 5.13 5.7   
22.5 22.7 乙巳 1520332 30 6.11 6.5   
22.6 22.8 乙亥 1520362 29 7.11 7.5   
22.7 22.9 甲辰 1520391 30 8.9 8.3   
22.8 22.10 甲戌 1520421 30 9.8 9.2 庚子,夏正8月27, 格里历9.28 
22.9 22.11 甲辰 1520451 29 10.8 10.2   
22.10 22.12 癸酉 1520480 30 11.6 10.31   
22.11 23.1 癸卯 1520510 30 12.6 11.30   
22.12 23.2 癸酉 1520540 503 1.5 12.30   

说明:大小月系按张培瑜先生的《中国先秦史历表》转录

 1 《史记志疑》112页。中华书局。

2 见《史记注译》1407页。三秦出版社,1988年。

3 《文宪集》,《景印文渊阁四库全书》1224卷404页。

4  本公式引自Frequently Asked Questions about Calendars Version 2.4 . Claus Tøndering。另外,http://aa.usno.navy.mil/data/docs/JulianDate.html提供儒略日与通用历日的转换,1582年10月15日之后是格里历日期,1582年10月4日之前是儒略历日期。

5 徐锡台:《探讨周原甲骨文中有关周初的历法问题》, 《古文字研究》第一辑,中华书局1979年版,第204页。

6 罗见今/关守义《敦煌汉简中月朔简年代考释》。敦煌研究1998.01. 158~165