利用天文学方法确定颛顼的历史年代

赵永恒 刘高潮

中国的历史源远流长,但是,有纪年的历史却仅从共和元年(即公元前841年)开始。在2000年,“夏商周断代工程”正式公布了《夏商周年表》[1],把中国的历史纪年由西周共和元年向前延伸了1200多年。

在“夏商周断代工程”之后,自然提出了对“五帝时代”的研究,这就是正在酝酿中的“中国古代文明探源工程”[2]。然而,传世文献对三皇五帝的记载非常稀少,甚至关于三皇五帝本身就有多种说法。以五帝为例,有人认为五帝为黄帝、少昊、颛顼、帝喾、尧,也有人认为是黄帝、颛顼、帝喾、尧、舜。而关于五帝生活的历史年代就更不清楚了,仅知道五帝是在夏朝之前。

颛顼年代的天文学计算

在此讨论的是处于五帝中间的颛顼的历史年代。如果能弄清楚颛顼的生活年代,就相当于为“五帝时代”提供了一个时间上的支点,故而具有史学价值。

传世文献中记载,颛顼是一位有文治之功的帝王,建都于河南濮阳。他在位期间建立了统治机构,定婚姻,制嫁娶,确立男女有别,长幼有序;针对巫术盛行之风,下令民间禁绝巫教。特别是,他还因改革历法,被后人推戴为“历宗”。

据《晋书·历律志》记载,魏文帝黄初年间(即公元220—226年)的董巴对远古历法的传承作了很好的论述:
“昔伏羲始造八卦,作三画,以象二十四气。黄帝因之,初作《调历》。历代十一,更年五千,凡有七历。颛顼以今之孟春正月为元,其时正月朔旦立春,五星会于天庙,营室也,冰冻始泮,蛰虫始发,鸡始三号,天曰作时,地曰作昌,人曰作乐,鸟兽万物莫不应和,故颛顼圣人为历宗也。汤作《殷历》弗复以正月朔旦立春为节也,更以十一月朔旦冬至为元首,下至周鲁及汉,皆从其节,据正四时。夏为得天,以承尧舜,从颛顼故也。《礼记》大戴曰虞夏之历,建正于孟春,此之谓也。”

根据这段记述,颛顼的历法起始日(即该年的正月初一)满足以下四个条件:(1)朔日;(2)立春;(3)五星会聚;(4)五星会聚于天庙,即营室。由此,可以利用现代天文计算的方法进行天象回推,来寻找同时满足这几个条件的年代和日期。

以下的天象回推计算主要依据由瑞士的Dieter Koch和Alois Treindl?两人开发的“瑞士星历表”(Swiss Ephemeris)软件(http://www.astro.com/swisseph/)进行。该软件是在美国NASA的喷气推进实验室(Jet Propulsion Laboratory, JPL)发布的精度最高的DE406行星历表和月亮表的基础上拓展而来的,它将DE406从公元前3000年至公元3000年的时间跨度拓展到公元前 5400年至公元5400年,并保证了0.001角秒的位置精度。因此该软件的时间跨度和位置精度完全适用于颛顼所在历史年代的判断。

为了充分检验各种可能性,我们将计算的时间段定为从公元前5400年一直到公元220年(董巴的年代)。其计算步骤如下:第一,根据太阳和月亮的黄经相等的条件来计算所有朔的时刻,并精确到分钟,时间为北京时间;第二,计算所有立春的时刻,即太阳黄经为315度时所对应的时刻,同样精确到分钟;第三,计算每日的太阳与水星、金星、火星、木星、土星的黄经,结果表明,在公元前5400年至公元220年间,共发生了278次五星会聚现象(按照五星会聚的定义 [3],五大行星会聚在黄道上黄经60度的范围内,并在太阳的同一侧;各行星到太阳的距离大到足够使它能被肉眼观测到,即木星、金星去日11度以上,土星、水星、火星去日15度以上);第四,在计算得出的278次五星会聚之中,寻找在立春日发生的五星会聚,共计八次;第五,在这八次五星会聚中,找出距离立春最近的朔的时刻。

根据以上计算找到了满足“朔日”、“立春”和“五星会聚”这三个条件的唯一日期,即公元前2807年2月26日。其他的五星会聚,其立春日和朔日均相差八天以上。

另外,通过“五星会聚于天庙”这一天象也可验证上述结论。以赤道坐标来看,五星分布于古代二十八宿的危宿与壁宿之间,这正是室宿的范围,室宿亦称“营室”;而如果按地平坐标来看,则五星分布在室宿与壁宿附近。由室宿与壁宿所组成的四边形作为“天庙”是非常形象的。

依据《晋书·历律志》的有关记载,可以用天文学方法唯一地确定出:颛顼的历法起始日为公元前2807年2月26日。在这一天,恰是节气立春,相应的物候是 “冰冻始泮、蛰虫始发”;而且这天也是正月初一,是朔日,朔的时刻为北京时间3时41分,正是天亮之前,即“旦”和“鸡鸣三号”的时候;此时,“天曰作时、地曰作昌、人曰作乐”,天、地、人得到了极大的统一,“鸟兽万物莫不应和”。因此,董巴对颛顼历法的描述确实是颛顼之时的实际天象,这些天象给那时的人们留下了极为深刻的印象。之后,故老相传,终于留存了下来。

如此煌煌的天象和精密的测算,使得后人以“颛顼圣人为历宗也”,而追求“日月如合璧、五星如连珠”也成为后世历法推求“上元”的动力。同时,依据颛顼的历法,人们把正月初一称为“春节”,因为在公元前2807年2月26日这一天,既是正月初一,也是节气立春,是“春天开始的节日”。

这些天象是否是后人伪造的呢?答案是否定的。因为要逆推出这样的天象,需要计算节气、朔、五星会聚和星宿的岁差效应。而从东周到东汉,当时的历法主要是 “四分历”,其推算的节气在一百多年以外就与实际相差一日,推算的朔日在三百多年以外就与实际相差一日;至于“太初历”和“三统历”的误差还要大一些。此外,这些历法对五星运动的推算精度也不高。

需要特别指出的是,在中国,直到晋朝的虞喜才发现了岁差,即春分点在黄道上退行的现象。董巴那时的人们尚不知道岁差,而《晋书·历律志》的作者(唐初的李淳风)还不相信有岁差。实际上,前述《晋书·历律志》关于董巴论历的记载是基于三国谯周(201—270)的《古史考》。

从史书考证颛顼的年代

据晋·皇甫谧的《帝王世纪》记载,颛顼在位78年,年98岁。创制新历法应该是颛顼执政以后的事情,这样,颛顼开始执政之时的下限为公元前2807年,上限为向前推77年,即公元前2884年。

从司马迁开始,很多人认为五帝是一脉相承、依次继位的,如同后期某个朝代中的前后几个皇帝。若以每个帝王执政最多100年计,五帝的总年数不会超过500 年。按“夏商周断代工程”给出的禹于公元前2070年执政[1],则黄帝不会早于公元前2570年,颛顼不会早于公元前2470年。20世纪初,报刊上曾讨论过“黄帝纪元”问题,例如1903年的《黄帝魂》认为“黄帝开国”于公元前2711年;1903年的《苏报》则认为是公元前2491年;1905年的《民报》则认为是公元前2698年。到20世纪下半叶,翦伯赞等在《中外历史年表》[6]中给出,黄帝开始执政是在公元前2550年,颛顼在公元前 2450年,禹在公元前2140年。这些年代,无论是颛顼还是黄帝,均晚于前述的下限公元前2807年,这说明五帝不应该是依次继位的。

另一类观点是以东汉时期流传的纬书为代表的,认为五帝相当于后期不同朝代的开国皇帝。例如,《春秋命历序》认为:炎帝传八世,五百二十岁;黄帝传十世,一千五百二十年;少昊传八世,五百岁;颛顼传二十世,三百五十岁;帝喾传十世,四百岁;尧治九十八年;重华(舜)治五十三年。《易纬稽览图》认为:神农五百四十年,黄帝一千五百二十年,少昊四百年,颛顼五百年,帝喾三百五十年,尧一百年,舜五十年。从这些记述可以看出,对五帝的在位年数差不多都是大约数,其误差在一二十年都有可能。

若以禹于公元前2070年执政,按《春秋命历序》,颛顼至舜的总年数为901年,则颛顼于公元前2971年执政;按《易纬稽览图》,颛顼至舜的总年数为1000年,则颛顼于公元前3070年执政。这些均比前述的上限公元前2884年要早,因而是存在着问题。

也曾有人认为,帝喾十世是包括尧舜的,如此,颛顼和帝喾的总年数分别为750年(《春秋命历序》)和850年(《易纬稽览图》)。若以禹于公元前2070 年执政,按《春秋命历序》,颛顼于公元前2820年执政;按《易纬稽览图》则为公元前2920年。比较起来,只有按《春秋命历序》所得的颛顼开始执政之年为公元前2820年符合前述上下限。

这样,按照《春秋命历序》的说法,并将尧舜并入帝喾世系,以夏朝开始于公元前2070年计,则颛顼开始执政于公元前2820年。按《帝王世纪》记载的颛顼在位78年,年98岁计,则可知:颛顼生于公元前2840年,逝于公元前2743年,在位时间为公元前2820至公元前2743年。然而,文献中的年数很多是大约数,故这些年代有很大的不确定性,可能会有几年甚至几十年的误差。但由于颛顼创制新历法之年被确定为公元前2807年,因此,颛顼历史年代的大致时间范围也就可以被确定下来。

参考文献

[1] 夏商周断代工程专家组. 夏商周断代工程1996—2000阶段成果报告(简本). 北京:世界图书出版公司,2000

[2] 王巍. 关于中国古代文明探源工程的构想. 光明日报, 2000 -03 -31

[3] 江晓原,纽卫星. 回天——武王伐纣与天文历史年代学. 上海:上海人民出版社,2000

[4] Perryman, M.A.C. et al. Astronomy and Astrophysics, 1997, 323: L49

[5] Fabri E. Astronomy and Astrophysics, 1980, 82: 123

[6] 翦伯赞. 中外历史年表. 北京:中华书局,1985

关键词:天文年代学 五帝时代 颛顼

公元前5400年至公元220年间发生在立春日的五星会聚

五星会聚发生的时间 立春的时刻 朔的时刻
公元前5250年3月15日至4月17日 3月16日20时56分 3月6日19时47分
公元前3341年2月11日至3月9日 3月1日21时31分 2月19日21时7分
公元前3104年2月7日至3月18日 2月28日9时9分 3月10日23时15分
公元前2807年2月10日至3月6日 2月26日10时24分 2月26日3时41分
公元前2190年2月12日至3月27日 2月22日3时17分 2月14日16时39分
公元前1953年2月13日至3月23日 2月20日15时15分 3月5日9时49分
公元前281年1月24日至2月17日 2月8日10时21分 1月30日13时35分
公元前44年1月16日至2月22日 2月5日17时17分 2月18日21时5分

公元前2807年2月26日天亮前在河南濮阳所看到的天象

横坐标表示地平坐标的方位角,90度为正东方,180度为正南方;纵坐标表示地平坐标的高度角,0度表示地平线,正数为地平线以上,负数为地平线以下。图中从左上方到右下方的三条曲线表示赤道坐标的经线,从右到左分别对应赤经240度、270度和300度;从右上方到左下方的三条曲线分别为赤道、黄道和南恒隐圈。日月五星的赤道坐标来自于“瑞士星历表”软件,恒星数据来自欧洲空间局的伊巴谷星表[4],并作了恒星自行的改正,岁差改正是依据法布里(E. Fabri)的数据[5]通过数值积分而得到的。

载于《科学》(上海),2004年56卷06期,14-16页