分享

历术宝典《历术甲子篇》解读

 逐江 2016-11-20
     序  言
    司马迁巨制《史记》中有一篇,也是唯一的一篇与众不同的奇文。奇文之奇,除了满纸数码,用的全是行业术语之外,还夹着一组有音无义需要破译的“密码”。暴看起来这本书像数命玄书,又像不让世人轻易破读的武功秘籍。其书名曰:《历术甲子篇》。 近世学者张汝舟苦守“二毋”书斋,潜心古代历法,集成果于其遗著《二毋室古代历法论丛》。张氏研究揭示:《历术甲子篇》竟然是由司马迁悉心、原貌、完整保存,幸得以留长传远的,属于古四分历的历术宝典。张氏称之为“遗世宝书”。 兹再为文,实因张氏遗著付梓之时,知识尚不被尊重,正如《西游》借佛祖言:这“经”当日贱卖了。余曾一睹张氏文,心动怦然,经久萦怀。久之亦有参悟,希冀一吐为快。或以能继承经世之绝学,宏扬国故精粹,引为快慰。本文立足点于容易为人忽视,且常不为见及之处,道鲜为道及之语,另涉及一些与名家定论相左的另见。
  从《殷历》说起 中国传统历法中,对于“殷历”从来就包含两个不同的含意。其一是夏、商、周三代中属于殷代使用的历谱或是历书。但是这样的历谱或是历书至今尚未发现(寄希望于考古新发掘!);因为所有关于那一时期历纪的史料虽然有一些,但只能算是由观象留下来的授时记录。另一则是由《汉书·律历志》明确记载的《殷历》。这是一份成文的历书或是兼有历谱性质的历书。其书虽然现在已经失传,但存于《汉书·律历志》,由刘歆录于其著作《三统历谱》中,系统引用而且点明是《殷历》的处所不少,其史料是极其珍贵的。研讨先秦历法,解读《历术甲子篇》奇文,必要求对其有一个较全面的了解。 先说《殷历》书名的确有。据《汉书·律历志》记载,汉武帝颁行《太初历》以后二十七年的元凤三年(西元前78年),太史令张寿王上书对《太初历》发难。由于大多数参加者坚持“历本之验在于天”,由实践检验《太初历》颁行二十多年来(比其它历书)更符合于天象,经过历时三年的大讨论,“是非坚定”,太史令张寿王以“下课”告终。在讨论中,众人提到张寿王持在手中的“乃太史官《殷历》也。”说明先秦存于史官确实有一本名为《殷历》的历谱或历书。 上书接着说:“至孝成之世,刘向总六历,列是非,作《五纪论》。子刘歆究其微眇,作《三统历》及《谱》以说《春秋》。”《三统历·三统历谱·世经》就是在总结太初制订历并法以“历”带“史”的一部大著作。 三统历谱的一元岁为4617岁。一元岁分为三统岁。于是每统岁则为1539岁。为了适合太初元年(西元前104年)作为“本元岁”一元复始之年的要求,刘歆令距离西元前104年1539年的那一年,为上元岁的“孟统”即第三统的开端。又以19岁为一(闰)章之岁,即从104 +1539 = 前1643年为始,共编81章岁首子月朔日干支作为历谱。 本文用序码1-60与“六十甲子”的甲子至癸亥相对应。如:1表甲子,60表癸亥,等。用六十甲子顺序数码表示的“孟统”谱的干支码列于附表一:
     表一 《三统历》孟统八十一章岁历谱 21——60—40—20—60※⑴39—19—59— 39※⑵18—58—38—18※⑶57—37—17— 57※⑷36—16—46—36※⑸15—55—35— 15※⑹54—34—14—54※⑺33—13—53— 33※⑻12—52—32—12※⑼51—31—11— 51※⑽30—10—50—30※⑾09—49—29— 09※⑿48—28—08—48※⒀57—07—47— 27※⒁06—46—26—06※⒂45—25—05— 45※⒃24—04—44—24※⒄03—43—23— 03※⒅42—22—02—42※⒆21—01—41     — 21※⒇→入太初本元首章-01…(前104年:太初元年)。
表中数码符※之后带括号的数字,是刘歆在其《三统历谱· 世经》上附注的《殷历》的“蔀”岁序,并且逐一标上了《殷历》同一天的日干支。因为其干支码正好是《三统历谱》干支顺序码加“1”,所以可以省去再标的手续。也就等于由刘歆为后人留下了《殷历》的一份同期历谱表。从上面的数据中,将属于《殷历》的历数,即每蔀岁首日干支和相应的西元年份,逐一摘出,可得另一专属《殷历》的历数表,列于表二:
    表二 《殷历》二十蔀岁首日干支表  ( 西元前年号·蔀岁序号 · 首月朔日干支)年号蔀序干支 年号蔀序干支 年号蔀序干支 年号蔀序干支 1567·01·01 1491·02·40 1415·03·19 1339·04·58 1263·05·37 1187·06·16 1111·07·55 1035·08·34 0959·09·13 0883·10·52 0807·11·31 0731·12·10 0655·13·49 0579·14·28 0503·15·07 0427·16·46 0351·17·25 0275·18·04 0199·19·43 0123·20·22
   由表二摘出的《殷历》历数列表,可以窥测出: 1、本蔀岁首日干支序码,就是上一蔀岁首日的干支序码加39之后除以60的余数。用传统的“六十甲子”表达方式可以叙述为:本蔀岁首日干支由上蔀岁首日干支往下推三十九位。 2、已知“古四分历”蔀岁的日参数取为27759平太阳日。27759÷60=462…39。上面的结果变句话表述:古四分历一蔀岁长462甲子另39日。两者比较,可以看出《殷历》推历的根据与“古四分历”一致,《殷历》的历算根据用的正是“古四分历”。据此,可以初步认定:《殷历》不是完成于殷代,也更不是殷代帝王使用的“时王之术”。因为在殷代,凭肉眼观察天象,即或能够达到如此的高精度,也没有证据证明在一千多年的时间长度里,能同时达到与“古四分历”规则如此合步的程度。 下一步,我们用现代的知识将《殷历》数据距密近天象的程度,列出上面20个历点的误差(以天为单位)如附表三: 表三 《殷历》二十个历日历点误差  (单位:天) 01 -3.75, 02 -3.50, 03 -3.25, 04 -3.00, 05 -2.75, 06 -2.50, 07 -2.25, 08 -2.00, 09 -1.75, 10 -1.50, 11 -1.25, 12 -1.00, 13 -0.75, 14 -0.50, 15 -0.25, 16 ±0.00, 17 +0.25, 18 +0.50, 19 +0.75, 20 +1.00。
     如果用定朔概念来分析《殷历》的误差,其结果可能略有不同,但无关以下结论: 1、《殷历》的误差呈线性; 2、历数与天象的误差值,有,且只有一个交点。交点在《殷历》第十六蔀蔀首,即西元前427年; 3、前于交点的误差带负号,后于交点的误差则带正号。 从上面说的三条关于误差的“结论”,可作如下的分析:《殷历》的误差是有规律而不是呈零乱带偶然性的。它与密近天象的冬朔时间有唯一的交点,说明这一时间极可能是《殷历》文献完成的年代,至少也是以此期间天象完成的著作;而其误差呈前负而后正,则给予了《殷历》正是完成于这一时期的充份证明。由以上分析,可以完全确定,借名殷代而实际完成并实施《殷历》的时间当是在第十六蔀首岁的年代,合西元前427年。其时为周考王(前440—426)十四年。因此,可以肯定:《殷历》是完成于战国初年用于授时的中国第一部成文历法文献。
      一 《历术甲子篇》历数表 《历术甲子篇》主文为时间长度一蔀岁,即76岁的历算数据,含其每岁首月(夏历岁前十一月)交朔和冬至的具体交节时分。今按现代的表述方式,译其“历数”列于表四:
   表四 《历术甲子篇》甲子蔀历数表
   序号 Ⅰ章岁 Ⅱ章岁 Ⅲ章岁 Ⅳ章岁 01— 01.000 40.705 20.470 60.235 02— 55.348 35.113 14.818 54.583 闰Ⅰ 49.696 29.461 09.226 48.931 04— 13.603 53.368 33.133 12.838 05— 08.011 47.716 27.481 07.246 闰Ⅱ 02.359 42.124 21.829 01.594 07— 26.266 06.031 45.736 25.501 08— 20.614 60.379 40.144 19.849 闰Ⅲ 15.022 54.727 34.492 14.257 10— 38.869 18.634 58.399 38.164 闰Ⅳ 33.277 13.042 52.747 32.512 12— 57.184 36.889 16.654 56.419 13— 51.532 31.297 11.062 50.767 闰Ⅴ 45.880 25.645 05.410 45.175 15— 09.787 49.552 29.317 09.082 16— 04.195 43.900 23.665 03.430 闰Ⅵ 58.543 38.308 18.073 57.778 18— 22.450 02.215 41.920 21.685 闰Ⅶ 16.798 56.563 36.328 16.093
    说 明 :
    1、上表共四章岁,每章岁1 9岁,每岁列其建子之月(夏历岁前十一月)历朔数一个。共7 6个数据,为一蔀岁的冬朔历数表。表左示冬朔数在章岁中的序次。其中夹着带“闰Ⅰ、闰Ⅱ、闰Ⅲ、闰Ⅳ、闰Ⅴ、闰Ⅵ、闰Ⅶ”示横行四年都是该章岁的闰序之年,罗马数字表其为一章岁中的第几闰年。 2、每个数由两部分合成:间隔点前面数1至6 0,为了整齐,1至9书为“0 1”、“0 2”…等,称为“大余”;意思是日期的“余”数,即是以序数表示的朔日干支。对应于六十甲子顺序。间隔点后面的数称为“小余”,是以日9 4 0分为分母时的日分。中间的间隔点,也可以呼为“小数点”,但须记住,其“小数”是9 4 0进位的,在计算时,足9 4 0分,才向前“进”大余1。 3、表上数字,为了照顾今人的阅读习惯,除了将原书“六十甲子”的顺序,依次如甲子“0”升为“1”,乙丑“1”升为“2”等之外,其余数字与原书核对无误。
    二 《历术甲子篇》历理为古四分历 1、蔀策:由表四推《历术甲子篇》“蔀策”:表上第一个数表示的是“甲子蔀”首日的日干支和交朔时分,为1. 000,即甲子日夜半子时零分。表上最末位,即序号17(闰Ⅶ)与纵行第Ⅳ章岁交点上数为16. 093,表示本蔀岁第76年首日于己卯日93分交朔。若能推出这一年的下一年的同月交朔日时,则本蔀岁76年的天数也就推出来了。 本蔀岁末年在章岁的第七闰上,是值闰年。这一年有多少天?表四序号1 1(闰Ⅳ)与纵行第 Ⅱ 章岁交点上的历数13.042,以此作对比参照。查13.042数的下一年为36.889,以36.889-13.042 = 23. 847。借用此数与前述16. 093相加,则得知甲子蔀下一蔀岁交朔首日为40. 000。本结果与表二对照,(01/1567· 01;0 2/1491 · 4 0;)可得《历术甲子篇》蔀策,一蔀岁循环462甲子零3 9日,即蔀策为6 0×4 6 2+39 = 2 7 7 5 9天。 2、年策 :《历术甲子篇》“蔀策”既为27759天,以7 6除之,可得年策为3 6 5 . 2 5天。 3、月策:因为一蔀岁含正(正副的正)月1 2×7 6=9 1 2(月),另外,加上四章(闰)岁7×4=2 8(闰月),相加可得一蔀岁有9 1 2 + 2 8 = 9 4 0(月)。以9 4 0除以其天数27759(天),得月策为2 9. 4 9 9天(2 9 . 4 9 9/9 4 0天)。 4、日分:为了便于推历计算,日分数以9 4 0为分母;也就是说,古历家在《历术甲子篇》中的“阴历”部份,是以日分为9 4 0分为日分量“小余”的计量单位。由以上四个推算结果可知,保存于司马迁《史记》中的奇文《历术甲子篇》和《殷历》同是以西元前4 2 7年实际天象的数据完成的,是同一历法文献的不同用途的两份文件。其历理同为古四分历,《历术甲子篇》为历术的数表,《殷历》为历谱和用于授时的历书。三者一体,互为里表。 以上引出研讨的只是《历术甲子篇》一半“历术数”,只属于古四分历的“阴历”部分。其另一半数据为同岁冬至的日干支和交节的日分量,是古四分历的“阳历”部份。古四分历的历理认定,每章岁的岁首,冬至与交朔不但同日,而且同时,称为“朔旦至”。粗略计之,一章岁首为甲子日的子时;二章岁首为癸卯日的酉时;三章岁首为癸未日的午时;四章岁首为癸亥日的卯时。精确表示则依次为0 1. 0 0;4 0 . 2 4;2 0. 1 6;6 0. 0 8。请注意,这儿的“小余”即冬至交节的日分量是以3 2为分母的。来源于一岁有二十四节气,其两个节气间的平气间距为:365.25÷2 4 = 1 5日7/3 2分。由此可知,古四分历的日分量是以9 4 0为分量还是以3 2为分量,完全出于方便于实际计算的需要。由上也知,按古四分历安排,岁中每个中气的“气距”为30. 14/3 2天,而且从章岁首日往下,每加冬至数5天另8/3 2日分,即依次可得其每一岁的冬至交节日干支和交节日分。是个定数,因此,表上从略。 古四分历大于年的时间单位有章、蔀、纪、元。以1 9岁为一章岁,因为1 9年安排7闰,以1 9年为一闰轮往复循环,所以又称之为“闰章之岁”。四章岁为一蔀岁。蔀策27759日,为古四分历的基础。以下以20蔀岁为一纪岁。一纪岁为1520岁。再以三纪岁为一元岁。一元岁4560岁,等于56400朔望月,等于1665540天,以上三数,都没有日分量,而且都是6 0甲子的倍数。因此,按古四分历的推算,设由甲子年甲子月甲子日甲子时起始,经过一元岁即历4560岁之后,将仍复回到以上的甲子年甲子月甲子日甲子时,说明古四分历是自圆其说的,故有“一元复始”的说法。《殷历》是从甲寅年甲子月甲子日甲子时开始,(西元前1567年岁前十一月朔日甲子夜半子时),所以《殷历》和《历术甲子篇》都称之为“甲寅元”。按以上说法,要到西元2994年,才是旧一元岁的一元复始之年!
    三 用《历术甲子篇》数据推历 中华文明积累的知识成果,向例看重师承授受。在处理文字书写不便,或是为了保护成果利益的需要,往往将其精髓真谛留在心志口说,传承点化。中华历法自传说中的黄帝以降,分出部份人“勤劳心力耳目”(司马迁语)以来,即有家世相传的“畴人”“咸正历纪”,也就是历人以职业世袭。保存于《史记》中的《历术甲子篇》,就明显有上面所说的特色,至少不是一篇完整的“论文”;因既称为“历术”,却只有一份完整数据,而缺“术要”,也就是没有具体使用数据的方法。不过,老祖宗(我猜想流落民间的历家落下闳功居第一,司马迁功并列第一!)既将一份数据完整地传了下来,今人就凭这张完整的数据,不难全数破读开来。张汝舟氏即作了全文破译。兹再重述,亦加新得: (一)蔀 法表四数据中的“小余”,7 6年周而复始,即间隔号后面的小数部份是过了7 6年再重复使用的。说起来,该历数表有点像三角函数表只列角度9 0度以内而通用于任意角一样。但其“大余”数,即历数的整数部份,却只适用于其“甲子蔀”,所以文题《历术甲子篇》。若这么一份表,只能适用于一“蔀”岁,又何得称为“历术”?既要通行于推历,先得知“蔀法”。蔀法其实非常简捷。对表二的《殷历》数据分析为:“本蔀岁首日干支由上一岁首日干支往下推三十九位”即得;此数“39”,为定数。若需将表四的数表用于哪一蔀一年限,只需将该蔀首日干支减去1遍加在表四的所有大余数上,就成了新的蔀岁的历算数表。 例题1 试编西元前199—前124年历朔数表? 查此年限属于表二中的第1 9蔀,数为“1 9/0 19 9·4 3”,知其首日干支为丙午(4 3)。由4 3 - 1=4 2,知4 2为丙午蔀的“蔀余数”。将表四的“大余数”通加4 2,则可得第1 9蔀7 6年的历数了。(参见文后附件一的历表4) 下附蔀法歌诀一首,以助记忆。 蔀策二七七五九,朔、至夜半逢蔀首。纪首起历甲子一,蔀 尾 壬寅三十九。三九定数立蔀余,首 余 相加往下走。一元三纪六十蔀,一 元 复始重头数。 (二)月 法 设本月历朔数为R0  ,推下一个月的历数R1 ,可由下式表示: R1=R0 + 29.499 仅须注意,此历数的“整数”是用60循环制,而“小数”采用的是940进位制,就可以方便地进入程式了。 ● 今人学古人进行历算“推步”,仍然“遵古炮制”,要分三步“走”:1)、先看本月交朔日分的时间,并且要先以日分441分界定本月月大还是月小。2)、若本月交朔的日分不足441分,确定本月为月小,只有29天。推步时,则“大余”加29,小余加499分,得数为下一个月的交朔日的历数。3)、若本月交朔的日分等于或大于441分,确定本月月大,有30天。推步时,大余加30 (即朔日干支往下移30位 ),小余则减 441分,得数亦为下一个月的历数 。上面己 “走完了” 三推步 ,还得再加一个 4)、颇费唇舌来详细解说为什么要用441分来“规定”为月大30天和月小29天的“界限”?用文字来解说,左想右想也只好一边执行,一边领悟。 引入的进位概念,使用上面公式,不必先看本月交朔“小余”的日分,判定本月有多少天,“推步”程式化,计算一步到位。理由简明。至于本月有多少天,对照先后两个月的朔日干支,就一目了然了。 由于月平均历日只29天半(29日470日分),与月策相较,余29分;因此每积十五个月左右,积分够半日,其月将连着两个月月30日,称之为“连大月”。例如某月历朔数小余等于或大于882分时,比如正好是882日分:第一次加日分499分,得1381分,日分进位以后成为1.441。下个月的日干支加29再加1,也就是向后推移了三十位,本月该月大。余下的日分441分,加499分,进第三个月,得940分,进位后就成为1.000。如是第三个月的日干支加29再加1,也同样向后移三十位,第二个月也连着月大。就造成了两个月月大的“连大月”的条件了。按古四分历历理,有两个月连着30天之后,不可能连着再次出现第三次30天。这是古四分历与定朔定月大与月小最大的区别之一。进一步分析上面提供的公式,还可以肯定一条:古四分历不会连着有两个月都是29天的机会。这也是与定朔定月大与月小的区别。 今人对古历有两个误会。其一是以为古历月大月小相间,往复循环;其二是因古历以大余29日小余499分为月策,以为这就是月大或月小的“标准”。由上分析知其否。再则,有一个古人大概也不甚明确交待的“模糊数”:这“小余”数如果是“0”,这“零点”的时间是置于夜半十一时,还是十二时?以今之世人(包括对汉文化有兴趣的外国人)咸以午夜十二时为0点,今历也以此为标准定交朔、交节的日期。古人“子时”,包括甲子、丙子、戊子、庚子、壬子五个子时,当都是从今人标准的夜半十一时开始的。 还有一个连历家们也不甚了然的词义:即“朔旦冬至”一语,历家们也多以“朔旦”为日出生光之时为日之始。就用古四分历的历数核之,当以甲子0分时刻为宜。至于古四分历理论未确立之前,古人以“何时为日之始?”则又当别论! 下附月法歌诀,作玩味消遣。 日法九百四十分,月策四百九十九。大余月加二九日,小余月加四九九。两月相加五八日,历月余分二十九。积足余分连大月,推十五月知其有。 例题2 试以上面交待的月法推汉惠帝元年(前194年)的月朔历谱? 分析:由附件一表4(丙午蔀)查西元前194年为丙午蔀第一章岁的第六年,表上第一栏与“闰Ⅱ”交点上,得其历法首月(夏正岁前十一月)历数为4 4. 3 5 9。汉初用秦历,以夏正十月为岁首,但月名仍为十月、十一月不变。其时闰月均排在其岁末,称“后九月”。因此本题只推月朔,不涉及“闰法”。为合“汉历”,需用44.359先反推出其年十月的历朔数,为44.359-30.000+0.441 = 14.800. 有了汉惠帝元年十月的历朔数14.800,可以依“月诀”排表如下: 十月/14.800(丁丑);十一/44.359(丁未);十二/13.858(丙子);一月/43.417(丙午);二月/12.916(乙亥);三月/42.475(乙巳);四月/12.034(乙亥);五月/41.533(甲辰);六月/11.092(甲戌);七月/40.591(癸卯);八月/10.150(癸酉);九月/39.649(壬寅);后九/09.268(壬申)。 十三个月月大月小依次为:大、小、大、小、大、大、小、大、小、大、小、大、小。本年二月12. 916(乙亥)、三月42. 475(乙巳),由916 - 441 = 475 得来。二月朔乙亥,三月朔乙巳,四月朔乙亥,连着二、三两个月都有30天,故本年二、三月为连大月。 上推与江陵张家山新出土竹简载汉惠帝元年“八月癸酉朔”,“九月壬寅朔”,“后九月壬申朔”一致。 (三) 闰 法 推闰法以刘歆说的较简捷。他的说法是,从章首岁始,岁给“闰分”7分,岁初积闰分12分及以上,本岁值“闰”;月闰分为7÷1 2 = 0. 5 8 3…分,加上岁初的“闰分”,满1 9分后安排闰月。这是历法置闰于“没有中气月份”的开始。按上面的办法,可以逐一排出章岁序的第三、六、九、十一、十四、十七、十九共七个年份为值闰年,如表四和表六。此结果与用古四分历理详推的闰月值闰年份一致。故从略。为节省文字,下续闰法歌诀,供详参: 七闰十九成章岁,三六九一四七九。岁给闰余加七分,十九排闰销十九。当值闰年闰何月?十二除七补差数。若问闰年多少天?九十三分看历数。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多