黑水城出土俄藏Инв.No.2546号西夏具注历日残片考
2022-09-10□张建
□张 建
《俄藏黑水城文献》第6册中收录了一件编号为Инв.No.2546的历日文书(图1),原拟题为《历书》[1]300。第6册《附录·叙录》对其描述为:“宋刻本。未染麻纸。高9cm,宽20.5cm。天头0.9cm。共5行。上单边。行存17字。下部裁去。中有竖横栏线多道。宋体,墨色浅。有‘除……/六日辛卯木破女……/七日壬辰金危虚……/八日癸巳水成危上……’等字。背为圆形梵文陀罗尼。内外圈皆有图案。”[1]附录·叙录:62-63
此件原为正反两面印刷,正面为历日,有活字印刷特征;背面为梵文陀罗尼。残历中有整齐的框架线,逐日以竖线隔开,各日不同内容之间以短横线隔开。关于残历的年代,至今还未有相关研究,本文即利用天文历法知识对其年代进行确定。
图1 Инв.No.2546图版
首先参考《附录·叙录》,对残历重新录入,文字如下(按,壬辰日纳音应作水,此历图版中可见“水”字下半部,同《余录》中作金,有误):
[上缺]
1.………… 除……
2.六日辛卯木破 女……
3.七日壬辰水危 虚……
4.八日癸巳水成 危上……
[下缺]
Инв.No.2546出自黑水城,其格式内容与同为黑水城出土的俄藏TK269、TK297、Инв.No.5229、Инв.No.5285、Инв.No.5306、Инв.No.5469、Инв.No.8117等几件西夏汉文具注历残件基本一致①,因此不难确定Инв.No.2546亦是一件西夏的具注历日残片。
参考这些历日残件的形制内容可知,西夏具注历均采用表格的形式,逐日以竖线隔开,各部分内容之间以短横线隔开,一看即明。根据栏线,我们可将每日之下的内容分为以下八个部分:(1)日期、干支、纳音、建除十二客,(2)二十八宿,(3)二十四节气、六十四卦、弦望、蜜、沐浴、除手足爪、归忌、往亡等,(4)卦气,(5)神煞、吉凶宜忌,(6)日出入方位和昼夜时刻,(7)人神流注,(8)日游神所在。
在知道了以上这些信息后再来看Инв.No.2546,残历中保存了四日内容,主体存三日,第一日只保留了一个“除”字,该字较小,位于第(3)栏内,应该是属于“除手足爪”之类的注记。其余三日从上到下依次是:日序、纪日干支、纳音、建除十二客、二十八宿,通过对这几项内容的考察,可以确定这是连续的三天。“八日癸巳水成危”后还残存了一个“上”字,同样位于第(3)栏内,原当是“上弦”,由此可知,残历中辛卯、壬辰、癸巳当为某月的六、七、八三日,而非十六、十七、十八或廿六、廿七、廿八。因此,残历所在月的朔日是丙戌。
接下来确定残历所在的月份。经邓文宽先生研究,干支纪日中的地支与建除十二客之间在“星命月”中有固定的对应关系,具体如表1所示。星命月是依据节气划分的,如从正月节气立春至二月节气惊蛰的前一日为星命正月,从二月节气惊蛰至三月节气清明的前一日为星命二月,余皆仿此。
残历中,六、七、八日的地支“卯”、“辰”、“巳”分别对应建除“破”、“危”、“成”,参考表1,可知此三日位于星命八月内,即从白露到寒露前一天的那段时间。节气要么出现在农历上一月的下半月,要么出现在农历当月的上半月。所以,此处有两种可能,即残历是属于某年的八月或者九月(或闰八月),朔日是丙戌,且若丙戌是八月朔,则“白露八月节”当注于农历七月(或闰七月)下半月至农历八月六日之间;若丙戌是九月(或闰八月)朔,则“白露八月节”当注于农历八月八日至十五日之间。
表1 “星命月”中建除十二客与纪日地支对应关系表[2]210
该残历采用二十八宿注历,传统历日中的二十八宿具有连续性,此外,二十八宿与七曜日之间也有固定的对应关系(表2),对应房、虚、昴、星的日子即日曜日,古历中多在此日下注“蜜”字,蜜日也就是星期日,故这里七日壬辰为蜜日。
表2 七曜日与星期、二十八宿的固定关系表
综合以上分析可知,残历属于某年的八月或九月(或闰八月),朔日是丙戌,七日壬辰是星期日。下面分别对两种情况进行讨论。
(一)八月丙戌朔
因西夏的朔日与宋历或同,或前后相差一日[3]65,故夏历朔日是丙戌对应到宋历的情况下,朔日未必为丙戌,也可能相差一天。而现今通用的《二十史朔闰表》[4]、《三千五百年历日天象表》[5]等中国古代历史年表,都是以中原历为标准的,在西夏的存在时间(1038—1227)采用的都是宋朝的年号纪年,因此我们在此期间查检八月丙戌朔的可能年代时,也需要将宋历与夏历之间可能存在的一日误差考虑进去。故正确的做法应该是:参考陈垣《二十史朔闰表》,在西夏纪年(1038—1227)年间查检八月乙酉朔、丙戌朔、丁亥朔的年份,共检得8个年份②,即1055年八月丙戌朔、1086年八月丙戌朔、1112年八月乙酉朔、1122年八月丁亥朔、1143年八月乙酉朔、1148年八月丙戌朔、1179年八月丙戌朔、1205年八月丙戌朔。
上文我们推得七日壬辰为蜜日,《二十史朔闰表》后附的《日曜表》[4]229-242为我们判定以上八个年份八月七日左右的壬辰日是否为蜜日提供了便利。以1055年为例,1055年八月丙戌朔,壬辰日为八月七日,这一天相当于西历的1055年8月31日,位于《日曜表》2表3年的8月31日③,经查检此日并非蜜日,故应将此年排除。其他7个年份也参照此方法逐一进行验证,将所得结果列表如下。
表3 八月丙辰朔条件下对壬辰日是否为蜜日的判定
根据表3,只有1148年和1179年满足八月朔日是丙戌且七日壬辰是蜜日的条件,接下来可利用上文推得的白露时间来对这两个年份做进一步甄别。查张培瑜《三千五百年历日天象表》,1148年八月丙戌朔,八月十五庚子白露,闰八月十六辛未寒露[5]287。该年八月十五才白露,而八月的六、七、八日不可能在星命八月内,与残历不合,故排除;1179年七月廿七癸未白露,八月廿八癸丑寒露[5]292。1179年白露八月节在农历七月下半月至农历八月六日之间,符合上述论述,可以进行下一步推断。
(二)九月(或闰八月)丙戌朔
同样的方法,在1038—1227年检索与九月(或闰八月)丙戌朔相同或相近的年份,共检得9年,分别为1050年九月乙酉朔、1060年九月丁亥朔、1096年九月丁亥朔、1117年九月丙戌朔、1153年九月丁亥朔、1174年九月乙酉朔、1184年九月丙戌朔、1210年九月丙戌朔、1220年九月丁亥朔。
对所有年份依次进行判别,参照表2的形式列表4如下。
表4 九月(或闰八月)丙辰朔条件下对壬辰日是否为蜜日的判定
根据表4可知,满足九月(或闰八月)朔日是丙戌且朔日后第一个壬辰日是蜜日的年份只有1210年。查《三千五百年历日天象表》,1210年八月十日乙丑白露,九月十一丙申寒露[5]297,与上文推测的白露位置相符,故可以进行下一步推断。
综上,残历可能存在于两个时间,即1179年的八月或1210年的九月,暂时还无法排除其中的某一项。
此历采用二十八宿注日,邓文宽先生曾指出,自南宋以来,传统历日使用二十八宿注历一直连绵未断,而且正确无误[6],因此我们可以利用历日中二十八宿的连续性来检验以上两个时间。具体可以在时间确定的前提下,通过考察残历与其他历日之间的二十八宿是否连续来对残历年代进行验证。
残历中“八日癸巳”对应“危”宿,可以推知当月二十五日庚戌对应“角”宿。角宿是二十八宿的第一宿,轸宿是二十八宿的最后一宿。传世历日《宋宝祐四年(1256)会天万年具注历》中记录该年正月六日戊戌,对应“角”宿[7]6。
先来对1179年八月进行验证。从1179年八月二十五日到1256年正月初六,其间共有27889天。减去重复的一天后,为28的996倍,是整数,表明这期间共经历了996个二十八宿周期,也说明从1179年八月二十五日到1256年正月初六这段时间内的二十八宿是连续的。
再来看1210年的九月,从1210年的九月二十五日到1256年的正月初六,共有16549天。(16549-1)÷28=391,同样具有连续性。两年都符合条件,还是无法排除哪一个。
残历损毁严重,留存较少,除主体的三日内容外,六日前一栏还残存了一个“除”字,应该是“除手足爪”这类的标注,八日“危”后还跟着一个“上”字,应该是“上弦”注,这样的信息不足以助我们确定残历的绝对年代。事实上,若仅从文本角度出发,进行到此处已是极限,但一份历日不可能同时属于两个年份,下面我们来讨论一点历日背后的东西。
受地理和文化等因素影响,西夏的朔闰节气与宋历十分接近,但西夏历并不等同于宋历,西夏朔闰至今也未能完全复原。幸运的是,Инв.No.8085以历表的形式保存了西夏从元德二年(1120)至应天二年(1207)大部分的朔闰,其中恰有西夏乾祐十年(1179)八月的关键信息。Инв.No.8085至今尚未刊布,彭向前先生曾对其进行过系统的整理和研究,我们可通过《俄藏西夏历日文献整理研究》一书了解Инв.No.8085的基本面貌和绝大多数信息。查看其中《夏仁宗乾祐十年(1179)己亥历日》[3]318-320,西夏乾祐十年八月朔为丁亥,真实可信;而同年宋历八月朔是丙戌,夏历的八月朔相比宋历要晚一天,故乾祐十年八月六、七、八三日对应的干支应该是壬辰、癸巳、甲午,不是这里的辛卯、壬辰、癸巳,据此可知残历的年代不可能是乾祐十年(1179)八月,残历的真正年代应为西夏皇建元年(1210)九月④。
另外,K.K.II.0292(j)(图2、图3)是1913—1915年斯坦因在进行第三次中亚探险时在黑水城掘获的,图版刊布于《斯坦因第三次中亚考古所获汉文文献(非佛教部分)》[8]316,仅残存两行文字,一共16个字,文字如下:
[上缺]
1.四日己未火闭尾……
长星
2.五日庚申木建箕……
[下缺]
图2 K.K.II.0292(j)正面
图3 K.K.II.0292(j)背面五㪷
表5 K.K.II.0292(j)与Инв.No.2546关联性对照(白露位置参照宋历,不影响两历之间关联性)
邓文宽先生考证K.K.II.0292(j)为《西夏皇建元年庚午岁(1210)具注历日》八月四日、五日的历日残片[9],与Инв.No.2546为同一年的历书,而且二者之间仅相差30天,正好一个大月,皇建元年八月也正好是大月⑤。不止如此,K.K.II.0292(j)在形制、字体、内容等方面都和Инв.No.2546如出一辙,根据残历中较大的字距也不难判断两历均属活字印本。更为关键的是,K.K.II.0292(j)的背面亦为圆形梵文陀罗尼。种种迹象表明,这两件历日为同一件《西夏皇建元年庚午岁(1210)具注历日》断裂而成,其原件正面为皇建元年历日,背面为梵文陀罗尼。
至于为何这两件残历会呈现如今的面貌且分藏两国,考虑到这两件残历的纸张大小、断裂迹象、残存内容都差不多,所以其原件皇建元年历书很可能原先是叠放的,中间从八月六日到九月五日一个月的内容粘连在一块,然后都缺失或者毁坏了,遗留下了这两张残片,前者被斯坦因发现带回国内,后者被科兹洛夫发现并带回俄国。
综上所述,俄藏Инв.No.2546的确切年代是西夏皇建元年九月,按照学界惯例,应将此件重新定名为《西夏皇建元年庚午岁(1210)具注历日》。该年西夏九月丙戌朔,与中原历朔同[5]297。另外,俄Инв.No.2546号与英藏K.K.II.0292(j)号均为《西夏皇建元年庚午岁(1210)具注历日》的残片,且出自同一原文献,两历中间有一月之间隔。
注释:
①西夏历日文书图版出处参考赵彦龙《西夏历法档案整理研究》,《中国档案研究》2017年第1期,第222—234页,下不注明出处。
②此处笔者已考虑因置闰先后所造成的朔日干支差一月的可能性。
③1055≡19(mod28),19=4×4+3,即5表3年,转换为《日曜表》还需在原表数上加4,这里即5+4≡2(mod7),即对应《日曜表》2表3年。
④前文通过二十八宿连续性考察未能将1179年排除,主要是因为从淳熙六年八月二十五庚戌到宝祐四年正月初六戊戌,其间恰好也经历了整数倍的二十八宿循环,假如西夏乾祐十年八月的历日安排与宋淳熙六年八月同,则残历完全可能属于这一年。此外,干支与二十八宿的配对一直是连续的,不会因为两历异同而发生变动。例如,这里“丙戌”对应的必定是“心”宿,“丁亥”对应的必定是“尾”宿,不论何者作为朔日存在。
⑤由K.K.II.0292(j)可以推知皇建元年八月朔是丙辰,由Инв.No.2546知皇建元年九月朔是丙戌,相隔30天,为一大月。