APP下载

对两份敦煌残历日用二十八宿作注的检验

2024-01-01邓文宽

敦煌研究 2023年5期

内容摘要:传统中国天文学史认为,用二十八宿注历,是南宋时为了“演禽术”的需要才产生的。然唐末五代的敦煌历日已有用二十八宿注历者。通过对两份早期敦煌残历日用二十八宿注历的情况进行检验,发现均有错误。鉴于有学者认为将其中的BD16365残历日定为唐乾符四年(877)不是唯一可能,文章用相关历法知识作了回应,说明唐乾符四年是该残历的唯一年代。文中《二十八宿与七曜日对应关系表》《七元甲子表》,在研究相关问题时,均可作为工具来使用。

关键词:二十八宿;七曜日;七元甲子;乾符四年

中图分类号:K870.6  文献标识码:A  文章编号:1000-4106(2023)05-0001-07

Examination of Two Fragmental Dunhuang Calendar Manuscripts

Annotated with the Twenty-eight Lunar Mansions

—Plus a Discussion on the Date of Manuscript BD16365, an Annotated Calendar

DENG Wenkuan

(Chinese Academy of Cultural Heritage, Beijing 100029)

Abstract:The traditional history of Chinese astronomy holds that the practice of annotating the days of the calendar using the Twenty-Eight Lunar Mansions came into being because of the requirements of yanqinshu演禽术, a theory of divination from the Southern Song dynasty in which twenty-eight celestial abodes were connected to, and represented by, twenty-eight animals. It has been found, however, that calendars found at Dunhuang from the late Tang and Five Dynasties were already being annotated with the Twenty-Eight Lunar Mansions. An examination of the two early Dunhuang calendars of note suggests that both contained significant errors. In response to scholars who have posited that fragmental calendar manuscript BD16356 could have originated at another time other than the fourth year of the Qianfu era of the Tang dynasty(877 CE), this paper responds with relevant research related to ancient Chinese calendars and elucidates that this year is the only possible date during which the calendar could have been created. Furthermore, the “Table of Seven Sexagenery Cycles for the Counting of Days,” the Qiyuan Jiazi Biao七元甲子表, and the “Correspondence Tables for the Twenty-Eight Lunar Mansions and the Seven-Star Days” contained in the text of the manuscript are recommended as reference tools for further research on relevant issues.

Keyword:Twenty-Eight Lunar Mansions; Seven-Star Days; qiyuan jiazi; fourth year of the Qianfu era

(Translated by WANG Pingxian)

二十多年前,筆者曾利用出土的、传世的和当代我国港澳台地区以及日本国的民用通书进行综合研究,证明自南宋淳熙九年(1182)至公元1998年的816年间,传统历日以二十八宿注历是连续进行的,也不曾出现错误[1]。但当时受认识和资料的局限,对早期敦煌历日使用二十八宿作注的情况未曾关注。本篇即对两份敦煌残历日用二十八宿作注的情况进行检验,看看它们是否正确,并对产生错误的原因试做分析。

在进行具体检验之前,有必要先确定用二十八宿注历正确与否的标准。

二十八宿用于注历是有规律可循的。这个规律便是它与另外两种历注间存在着固定对应关系。确认了这种对应关系,历本上用二十八宿作注正确与否便一目了然。现将这两种对应关系解释如下。

第一种是二十八宿与七曜日(日、月、火、水、木、金、土,一星期七天)的对应关系。二十八宿是中国传统天文学的内容,但七曜日却是一种外来文化。就目前能看到的资料而言,在敦煌地区,至晚五代时七曜日即已用来注历。这两项历注有一个共同特点,即用于注历时都是将其完整的周期依次配入各日之下,反复进行,自身周期内并无重复。因为28是7的整4倍,所以,二者间就形成了固定对应关系。最最重要的是,二十八宿的首宿(角宿)应该配七曜日的哪一日,这个问题解决了,其下依次配入即可。我们知道,二十八宿之“角亢氐房心尾箕”是“东方苍龙”七宿;而在中国古代方位与五行的对应关系里,又是“东方甲乙木”,“角”和“木”均属于“东方”,所以“角”必须与“木”相配。而七曜日的顺序又是日、月(星期一)、火(星期二)水(星期三)、木(星期四)、金(星期五)、土(星期六),这样,二十八宿与七曜日间便有了下列固定对应关系(表1):

有了这种对应关系,即使历本上没有用七曜日作注,但只要当日有二十八宿注历,我们就能立即获知当日是星期几,反之也是一样。尤其是“日曜日”(星期日)必在房、虚、昴、星四日,是一项重要知识,我们在研究古代历日时会十分有用。

第二种是“七元甲子”。所谓“七元甲子”,指的就是七个甲子周期(420天)里,各纪日干支与所注二十八宿间的对应关系,附带也包含了七曜日与二十八宿的对应关系。420天是六十甲子的7倍(七元),也是七曜日的60倍,还是二十八宿的15倍。从纯数学的角度讲,420 是7、28、60这三个数的最小公倍数。甲子、二十八宿和七曜日在历本上是循环使用的,自身周期内并不重复,于是形成了七元甲子(420天)内各纪日干支和二十八宿间的固定对应关系。

对于“七元甲子”,清朝人曾有过解说。《协纪辨方书》卷一(本原一)“二十八宿配日”条说:“《考原》(按:即《星历考原》,官修于清康熙年间)云:‘日有六十,宿有二十八,四百二十日而一周。四百二十者,以六十与二十八俱可以度尽也。故有七元之说。一元甲子起虚,以子象鼠而虚为日鼠也;二元甲子起奎,三元甲子起毕,四元甲子起鬼,五元甲子起翼,六元甲子起氐,七元甲子起箕。至七元尽而甲子又起虚,周而复始。但一元起于何年月日则不可得而考矣。”[2]对于七元甲子里各元之首日即甲子日所配二十八宿,如一元甲子日配“虚”等等,若仅仅停留在文字表述上,便会觉得一头雾水。于是,我将一元到七元各甲子60日中,纪日干支与二十八宿的对应关系做了表格化的处理(见表2《七元甲子表》),上引《星历考原》的内容便十分清楚了。在这七个表格的各甲子之間,干支是连续的,二十八宿也是连续的,每个甲子日所配星宿与《星历考原》也一一相合。这就是说,从理论认识上看,所言七元甲子里纪日干支与二十八宿间的对应关系是成立的。但是,仅作理论解说仍然不够,我们还必须用古代实用历本加以印证,才能最终确定其可考性。幸运的是,作为传世最早的官颁历本《南宋宝祐四年(1256)会天万年具注历日》[3],就含有相对完整的二十八宿注历,其各甲子日所注二十八宿情况如下:八月六日甲子注“虚”,十月七日甲子注“奎”,二月二日甲子注“翼”,四月三日甲子注“氐”,六月五日甲子注“箕”。由于一年不会有420天,所以见不到注“毕”和“鬼”的那两个甲子周期(宝祐三年和五年历日应该都能见到)。做了这样的对照之后,我们可以确认,本文表2《七元甲子表》是能够成立的,是正确的。迄今为止,同类表格我未曾见过,是笔者依据《星历考原》的文字表述绘出的,愿借此机会,随同本文一起刊出,供未来的研究者参考和应用。

明确了二十八宿与七曜日的对应关系、七元甲子里各个纪日干支与二十八宿的对应关系后,我们就可以对那两份敦煌残历日用二十八宿注历是否正确进行检验了。

第一份是S.2404《后唐同光二年甲申岁(924)具注历日并序》[4]。此历日由著名敦煌历法专家翟奉达“撰上”。历本首部稍残,但不严重,所以序言部分基本完整。但正文部分却仅存正月的一到四日(四日亦有残缺),以下全失。不过,就在这四日中,却有两日注了二十八宿:一日注“虚”,二日未注,三日注“室”,四日因残而不可知。最初,我未注意到这两处历注的意义,是法国汉学家华澜教授给我指出的,这里要向他致以深切的感谢。虽然二日未注,但在二十八宿中,“斗牛女虚危室壁”是北方玄武七宿,“虚危室”是连续的,所以,将一日与三日所注的“虚”和“室”理解为二十八宿是没有错误的,关键是看它正确与否。正月一日顶端注一“莫”字,是七曜日星期一的外来名字,也称太阴日或月曜日。而初一日的纪日干支是辛丑。查本文所附《七元甲子表》,辛丑日所注二十八宿是:一元注角,二元注柳,三元注轸,四元注房,五元注斗,六元注危,七元注娄,辛丑日无注“虚”者。但“虚”后一日即是“危”,也就是说,本历正月一日当注“危”(在六元辛丑日,星期一)而非“虚”,“虚”应注在同光元年的除夕日(十二月二十九日或三十日)才是。本历日正月一日辛丑又注“莫”,查历表,该日合公元924年2月9日;再查《日曜表》,此日恰是星期一(莫)。这就再次表明,该历正月一日应注“危”而非“虚”,注“虚”错。进而言之,此历日以下各日所注二十八宿,若按照正确的标准,均应上提一日。

第二份是国家图书馆藏BD16365。此件为各自仅存5行和6行的两个小断片,分别属于历日的三月和四月。我曾考订该历的年代为唐乾符四年(877)[5]。后来赵贞先生对我所定年代表示怀疑。所以,必须先将该残历的准确年代加以确定,才能讨论其用二十八宿作注的正确与否。赵贞说:

鉴于敦煌历的朔日与中原历常有一两日的误差,我们姑且以中原历四月壬申朔 (相比中原历,敦煌历晚一日)为参照,检索《二十史朔闰表》,可知归义军时期有乾符四年(877)、后晋天福四年(939)和北宋景德三年(1006),均为四月壬申朔。以《日曜表》来复核,发现只有乾符四年的四月乙未是“蜜”日(公元877年6月9日)。邓文宽据此将BD16365定为《唐乾符四年丁酉岁具注历日》。这当然是对的。但不可否认,敦煌历日中还存在朔日干支比中原历朔早一日的情况,比如敦煌历四月癸酉朔,中原历甲戌朔,那么比照《二十史朔闰表》,可知归义军时期符合条件的年份有唐景福元年(892)、后汉乾祐二年(949)和宋大中祥符九年(1016)。同样以《日曜表》来复核,只有景福元年四月乙未(即公元892年5月21日)为蜜日,亦符合“星”宿的标注。据此,似乎也不能排除BD16365为《唐景福元年壬子岁(892)具注历日》的可能性。[6]

可见,在赵贞先生看来,这份残历日既可能是唐乾符四年(877)的,也可能是唐景福元年(892)的,从而其年代不再具有唯一性。赵贞研究残历时,主要关照的是两个要素:一是敦煌历日与中原历日的朔日有一到二日乃至三日的差别,二是相关日期能否与《日曜表》相合。诚然,就方法而言,考订残历年代时,关照上述两个要素是必须的,但又是不够的。历日虽残,但残存内容可能同时提供好几个有价值的信息。这些信息既是考订残历年代的条件和依据,同时所考订出的年代也要能让这些信息获得通解。学术规范要求,整理和研究出土文献时,要依次做到识字、释义和通文。我想这个原则在考订残历年代时同样适用。如果所定年代不能让残历日中的某些重要信息获得通解,那就说明这个年代一定是错的,不足采信。

残历第二片二十日壬辰注有“芒种五月节小暑至”。首先需要说明的是,在中国古代的七十二个物候中,“小暑至”是“小满四月中”的第三候,“芒种五月节”的第一候是“螳螂生”,所以,此处将物候注为“小暑至”是错误的。根据残历现存的其它条件,我们已考出这一片为四月的历日,赵贞先生亦无异议。那么,为何“芒种五月节”却注在了四月二十日呢?中国古代的二十四节气,理论上农历每月含一个节气和一个中气,如“立春”正月节,“雨水”正月中,“芒种”五月节,“夏至”五月中,等等。但实际编在历本上时,“节气”(非中气)所在日期常常是在本月上半月和上月下半月之间游动。这是为什么呢?经验告诉我们,凡是将节气提前注在上月之下半月者,应该是在它不久前的几个月内曾置过闰月,否则就不会出现这种“错位”现象。残历“芒种五月节”注在四月二十日,就已提示我们,其前不久有过闰月。查陈垣先生《二十史朔闰表》[7]和张培瑜先生《三千五百年历日天象》[8],中原历唐乾符四年均是闰二月,癸酉朔;而景福元年(892)无闰月,再前一年即大顺元年(891)也无闰月,只是到景福二年(893)才闰五月,戊辰朔。如同敦煌历日的朔日与中原历有一到三日之差,敦煌历的闰月与中原历也常有一到二月之别。换言之,这件敦煌残历日所在的唐乾符四年年初或再早一点也曾置闰,或在二月,或在二月前后的两个月内,这才是残历将“芒种五月节”注在四月二十日的真正原因。同理,乾符四年中原历“芒种五月节”注在了四月十七日戊子(比敦煌历还早三日),也是因为该年有闰二月所导致。而景福元年根本就不存在将“芒种五月节”注在四月二十日的前提条件(详前)。我们再查一下节气表,中原历景福元年(892)“芒种五月节”是在农历五月四日丁未[8]244上栏中,比这份敦煌残历日所注的四月二十日晚了十四天,它们能是同一年的中原历和敦煌历吗?

综上可知,将这份敦煌残历年代定在唐景福元年(892)无法自洽,从而是错误的。残历的年代只能是唐乾符四年丁酉岁(877)。

在将残历年代确认之后,我们再去检验它用二十八宿作注正确与否。残历第二片现存状况是:四月二十日壬辰注井,二十一日癸巳注鬼,二十二日甲午注柳,二十三日乙未注星。其中二十三日合公元877年6月9日,是星期日。前已指出,在二十八宿与七曜日的关系中,房、虚、昴、星四日是星期日,所以二十三日注“星”是正确无误的。但我们将二十三日的纪日干支乙未与《七元甲子表》对照时,却发现了问题。在《七元甲子表》里,乙未日一元注壁,二元注昴,三元注井,四元注张,五元注亢,六元注尾,七元注女,无一日注“星”者。而甲午在乙未前一日,一元注室,二元注胃,三元注参,四元注星,五元注角,六元注心,七元注牛。残历二十三日注“星”,又是星期日,并不矛盾,错误出在纪日干支上。如果本日干支是甲午,即“二十三日甲午星”(见“四元甲子”甲午日),那就没有错误了。现存历日残片上甲午不在二十三日,而在二十二日,说明残历的干支有一日之误。

残历纪日干支有一日之误,这个错误是如何产生的呢?我推测有两种可能:一是抄历人抄写时看串了行,漏抄了某日的干支,结果是将后面各日干支提前了一日;另一种可能是,编历者相关知识不够,编历时本身就出了错误;而以第二种可能性为大。从上面的论述可知,若依照正确的标准,该历四月二十三日干支应为甲午,逆推可得,四月朔日在壬申,与中原历在同一日。

“七元甲子”是一项非常重要的历法知识,但以往学者们包括我本人均重视不够。本文复原出《七元甲子表》后,以它为工具,检验了两份敦煌残历日用二十八宿作注的正确程度,结果是均有错误。这两份残历特别是唐乾符四年(877)历日,是目前所见用二十八宿作注的最早资料,但将二十八宿引入历本作注时却出现了错误。这说明当时的编历者对“七元甲子”认识不足。也许当时人尚未认识到“七元甲子”那种严格的对应关系,甚至还没有“七元甲子”这个概念。但“七元甲子”本身是一种客观存在,后人用得多了,对它的认识加深了,自然也就不再会出现早期使用者的那些错误,这也正是人类认识提高的一般规律。这样理解,千余年后的我们,也就无由苛责古代那些编历先行者了。

参考文献:

[1]邓文宽. 传统历书以二十八宿注历的连续性[J]. 历史研究,2000(6):173-175.

[2]李零. 中国方术概观:选择卷:上[M]. 北京:人民中国出版社,1993:78.

[3]任继愈. 中国科学技术典籍通汇:天文卷1[M]. 郑州:河南教育出版社,1997:691-704.

[4]邓文宽. 敦煌天文历法文献辑校[M]. 南京:江苏古籍出版社,1996:374-382.

[5]邓文寬. 两篇敦煌具注历日残文新考[G]//敦煌吐鲁番研究:第13卷. 上海:上海古籍出版社,2013:197-201.

[6]赵贞. 国家图书馆藏BD16365《具注历日》研究[J]. 敦煌研究,2019(5):92.

[7]陈垣. 二十史朔闰表[M]. 北京:中华书局,1956:109.

[8]张培瑜. 三千五百年历日天象[M]. 郑州:河南教育出版社,1990:241:下栏右.