孔子诞辰的推算
–中山大学中文系博士生 徐文新
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的日偏食,这一天的纪日干支恰为庚戌,这就与《公羊传》和《谷梁传》中的“九月庚戌朔,日有食之”的记载吻合,至于《公羊》《谷梁》二传所载该年十月庚辰朔日食无疑有误了。
二 孔子诞辰应定为10月3日
据报道,江晓原先生为了确定这次庚戌日食的公历日期,采用了“儒略日”。公元前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日,日干甲子。
三 农历8月27的来源
晋明帝太宁三年诏四时祀孔子。据说以后历代加增,每年的祭孔活动大小有50多次。但以春秋两次大祭为主,尤以秋祭为重。将每年的大祭定在农历八月二十七日孔子诞辰日,据说是出自出自孔氏家谱,国民政府曾据此定夏历八月二十七日作为教师节,后来又邀请历法及考据专家把它换算为公历9月28日,值得注意的换算成是9月28日采用的是格里历。下面,我们来分析农历八月二十七日是如何得来的及其可靠性:
如梁玉绳所述那样,把《史记》的“鲁襄公二十二年”和《谷梁传》的“十月庚子日”拉到一起,就是“鲁襄公二十二年十月庚子日”。再根据“三正说”把周正“十月”改为夏正“八月”,把日干“庚子”换算成数字纪日“二十七”,“鲁襄公二十二年夏正八月二十七”就出来了。
但是,《史记》仅记载“鲁襄公二十二年”,无孔子生日的干支,而《谷梁传》的“十月庚子日”是“鲁襄公二十一年”,这样把两者给合起来,显然不合理的。
从历法发展来看,战国以前是干支纪日,“二十七日”这种数字纪日不大可能是西汉前期的记载。
殷墟甲骨刻辞采用干支纪日。
徐锡台先生说:“周原甲骨文中出‘既吉’,‘既魄’,‘既死’,说明在周文王时就已用月相补充殷的干支纪日方法”。5而《尚书》及出土铜器铭文中大量使用既生霸、既望、既死霸来描述月相辅助纪日。夏商周工程阶段性成果倾向于“月相四分”,并归纳出西周时期置闰规律:1.西周历法采用“朔”或“朏”为月首。认识朔以前,当以“朏”为月首。2.西周历法的建正多为建子、建丑。3.西周历法一般采用年终置闰。这说明当时的历法水平还没达到“四分历”的程度。
《后汉书·律历志》贾逵论历曰:“以《太初历》考汉元尽太初元年日食二十三事,其十七得朔,四得晦,二得二日。新历七得朔,十四得晦,二得二日。以《太初历》考太初元年尽更始二年二十四事,十得晦。以新历十六得朔,七得二日,一得晦。以《太初历》考建武元年尽永元元年二十三事,五得朔,十八得晦。以新历十七得朔,三得晦,三得二日。”《汉书·五行志》:“凡汉著纪十二世,二百一十二年,日食五十三,朔十四,晦三十六,先晦一日三。”《后汉书·律历志》:“自太初元年始用《三统历》,施行百有余年,历稍后天,朔先于历,朔或在晦,月或朔见。”
从西周和两汉历法水平来看,春秋时期当不能准确预推朔日,但春秋所记载的“日有食之”均在朔日,春秋中的朔日能与日食相吻合的原因何在?我们推测,春秋时期只能大体按一个月29天有余,30天不足定出朔日来进行“告朔”,并随时根据发生的日食来调整朔日,如《说文》所云“日蚀则朔,月蚀则望”。《春秋》中与日食相关的“朔日”,并不是事前推算出来的,而是发生日食之后,把“日食”记载于日之“干支”之后,并书上“朔”,所以才有那么准确,也算是“事以系日”的内容之一吧。
朔日不定,也就无法用数字纪日。数字纪日当在《历术甲子篇》所记载的“四分历”历法出现之后。利用四分历的“月朔旦甲子日法”才能比较准确地定出朔日及月的大小,此后数字纪日才流行开来。从存世文献看,我国以数字纪日大概当从西汉后期才开始,至魏晋才日见通行起来。楚简中尚是干支纪日,疏勒河汉简中已有数字纪日,其年代一般认为是东汉,也有人认为“疏勒纪年简上下时限为公元前98年至公元137年”6,但也不会早于《谷梁》、《公羊》二传。孔氏家谱的“八月二十七”不大可能是于西汉前期的记载,当是后人的追记。
下面列出与孔子诞辰相关的鲁襄公21-23年历表:
夏正 | 周正 | 朔日干支 | 儒略日 | 月大小 | 儒略历 | 格里历 | |||||||||
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