第八章

作者:房玄龄等朝代:类别:纪传体断代史 · 白话译文

本文永久链接:https://shishuguan.com/books/jinshu-baihuawen-full/volume-2/chapter-8

魏尚书郎杨伟上表说:“我阅览典籍,考核历法,用季节来记录农事,用月份来记载事务,这种做法由来已久,可以追溯到远古。自从少昊时代,就让玄鸟掌管春分秋分;颛顼、帝喾时代,让重黎掌管天文;唐尧、虞舜时代,让羲和掌管太阳。三代沿袭这一制度,世代都有日官。日官掌管历法,就颁布给诸侯;诸侯接受历法,就在各自境内颁布。夏朝之后,羲和沉湎于酒色,荒废了时节,扰乱了日子,所以《尚书》中记载了《胤征》。由此看来,重视农时并注重人事,历代都是这样。到了周朝衰微时,战国纷争,告朔用的羊被废弃而不再延续,登台颁朔的礼仪也被废止而不遵循,闰月错乱而无人知晓,正月失序而无人醒悟,大火星仍然向西流动,却奇怪蛰虫为什么不藏起来。这个时候,天子不协调时节,司历不记载日子。诸侯不履行职责,日御不分发朔日,人事不被体恤,农时被荒废。孔丘在《春秋》中拨乱反正,通过褒贬来纠正,司历错过了闰月,就讥讽并记载下来;登台颁朔,就称赞它为有礼。从此以后,直到秦朝、汉朝,又用孟冬作为岁首,闰月放在九月之后,节气错乱,时月谬误。加上时刻滞后于天象,日食不在朔日,连续多年相沿袭,长期没有改正。到了汉武帝元封七年,才意识到其中的错误,于是改换正朔,变更历法,让才能通达的人重新制作《太初历》,校正中朔的误差,来修正闰分,考察中星是否合度,来检验疏密,以建寅之月为正朔,以黄钟之月为历法起始。这个历法的斗分太多,后来就变得疏阔。到了汉章帝元和二年,又改用《四分历》,施行使用,直到今天。考察日食,常常在晦日,这就是因为斗分太多,所以开始精密后来疏阔而不可用。因此我从前利用制定法典的闲暇时间,推考天道,查考前代典籍,用日食朔日来验证,详细而精审地研究,重新制作了精密历法,既不过早也不偏晚,古今都合乎天象。如同从前唐尧时代,调和时日、端正时节,使各种工作都有条理,各项事务都能兴盛。想要使当今国家的典礼和所有制度,都能符合古代,丰富完备,于是改换正朔,变更历法,以大吕之月为岁首,以建子之月为历法起始。我认为从前在帝舜时代,历法叫《颛顼历》;更早从轩辕时代,历法叫《黄帝历》;到了汉朝孝武帝,改换正朔,变更历法,改年号为太初,因此叫《太初历》。现在改年号为景初,应该叫《景初历》。我所建立的《景初历》,法则数理简明扼要,施用起来则接近精密,推算起来省力,学起来容易懂。即使让研桑心算、隶首运筹、重黎掌管晷影、羲和观测日影,来考求天道,推算验证日月,穷尽精微,达到术数的极致,都不能像我这样精妙。因此历代历法,都疏而不密,从黄帝以来,常常改革不断。”

从壬辰年以来,到景初元年丁巳岁,累计四千零四十六年,算上首年。

这个历元以天正建子黄钟之月为历法起始,元首之年,夜半甲子日朔旦冬至。

元法:一万一千零五十八。

纪法:一千八百四十三。

纪月:二万二千七百九十五。

章岁:十九。

章月:二百三十五。

章闰:七。

通数:十三万四千六百三十。

日法:四千五百五十九。

余数:九千六百七十。

周天:六十七万三千一百五十。

纪岁中:十二。

气法:十二。

没分:六万七千三百一十五。

没法:九百六十七。

月周:二万四千六百三十八。

通法:四十七。

会通:七十九万零一百一十。

朔望合数:六万七千三百一十五。

入交限数:七十二万二千七百九十五。

通周:十二万五千六百二十一。

周日日余:二千五百二十八。

周虚:二千零三十一。

斗分:四百五十五。

甲子纪第一

纪首合朔,月在日道里侧。

交会差率:四十一万二千九百一十九。

迟疾差率:十万三千九百四十七。

甲戌纪第二

纪首合朔,月在日道里侧。

交会差率:五十一万六千五百二十九。

迟疾差率:七万三千七百六十七。

甲申纪第三

纪首合朔,月在日道里侧。

交会差率:六十二万零一百三十九。

迟疾差率:四万三千五百八十七。

甲午纪第四

纪首合朔,月在日道里侧。

交会差率:七十二万三千七百四十九。

迟疾差率:一万三千四百零七。

甲辰纪第五

纪首合朔,月在日道里侧。

交会差率:三万七千二百四十九。

迟疾差率:十万八千八百四十八。

甲寅纪第六

纪首合朔,月在日道里侧。

交会差率:十四万零八百五十九。

迟疾差率:七万八千六百六十八。

交会纪差:十万三千六百一十。求这个数产生的方法:设置一纪的积月,用通数相乘,用会通去除,所余的余数,就是纪差的数值。用这个数递加前一个纪,就得到后一个纪。如果加后未满会通,那么纪首之年的天正合朔时月亮在日道里侧;如果加后满会通则去掉,那么月亮在日道外侧。加外侧的,满则移到里侧;加里侧的,满则移到外侧。

迟疾纪差:三万零一百八十。求这个数产生的方法:设置一纪的积月,用通数相乘,用通周去除,余数用通周减去,所减的余数,就是纪差的数值。用这个数递减去前一个纪,就得到后一个纪。如果不够减,就加上通周。求下一个元纪的差率,递减去前一个元甲寅纪的差率,余数就是下一个元甲子纪的差率。求下一个纪,按上述方法。

推算朔积月的方法:设置从壬辰元以来,到所求年份为止,除去所求年之外,用纪法除它,所得商数(算外),就是所入的纪数,余数就是入纪的年数。用章月乘这个余数,除以章岁,得到积月,余数为闰余。闰余在十二以上,这一年有闰月。闰月以没有中气的月份作为标准。

推算朔日的方法:用通数乘积月,得到朔积分。除以日法,得到积日,余数为小余。用六十去除积日,余数为大余。大余以纪命名,算外,就是所求年天正十一月朔日。

求下一个月的朔日,加大余二十九,小余二千四百一十九,小余满日法则进位到大余,按前法命名,就是下一个月朔日。小余在二千一百四十以上,这个月是大月。

推算弦望的日子,加上朔日大余七,小余一千七百四十四,小分一,小分满二则进位到小余,小余满日法则进位到大余,大余满六十则去掉,余数用纪命名,算外,就是上弦日。再加,得到望日、下弦日、后一个月的朔日。如果望日发生月食,确定小余如果在中节之间,则小余按照所接近的中节间限数、限数以下,算上为日。望在中节前后各四日以内的,看限数;望在中节前后各五日以上的,看间限。

推算二十四节气的方法:设置所入纪的年数,除去所求年,用余数相乘,满纪法得大余,余数为小余。大余满六十则去掉,余数用纪命名,算外,就是天正十一月冬至日。

求下一个节气,加大余十五,小余四百零二,小分十一,小分满气法则进位到小余,小余满纪法则进位到大余,按前法命名,就是下一个节气日。

推算闰月的方法:用闰余减去章岁,余数用岁中相乘,除以章闰得一个月,余数满半法以上,也得一个月。数从天正十一月起,算外,就是闰月。闰月有进退,以没有中气来驾驭。

大雪十一月节 限数一千二百四十二 间限一千二百四十八

冬至十一月中 限数一千二百五十四 间限一千二百四十五

小寒十二月节 限数一千二百三十五 间限一千二百二十四

大寒十二月中 限数一千二百一十三 间限一千一百九十二

立春正月节 限数一千一百七十二 间限一千一百四十七

雨水正月中 限数一千一百二十二 间限一千零九十三

惊蛰二月节 限数一千零六十五 间限一千零三十六

春分二月中 限数一千零八 间限九百七十九

清明三月节 限数九百五十一 间限九百二十五

谷雨三月中 限数九百 间限八百七十九

立夏四月节 限数八百五十七 间限八百四十

小满四月中 限数八百二十三 间限八百一十二

芒种五月节 限数八百 间限七百九十九

夏至五月中 限数七百九十八 间限八百零一

小暑六月节 限数八百零五 间限八百一十五

大暑六月中 限数八百二十五 间限八百四十二

立秋七月节 限数八百五十九 间限八百八十三

处暑七月中 限数九百零七 间限九百三十五

白露八月节 限数九百六十二 间限九百九十二

秋分八月中 限数一千零二十一 间限一千零五十一

寒露九月节 限数一千零八十 间限一千一百零七

霜降九月中 限数一千一百三十三 间限一千一百五十七

立冬十月节 限数一千一百八十一 间限一千一百九十八

小雪十月中 限数一千二百一十五 间限一千二百二十九

推算没灭(节气盈尽)的方法:根据冬至积日有小余,加积日一,用没分乘它,除以没法,得到大余,余数为小余。大余满六十则去掉,余数用纪命名,算外,就是去年冬至后的日子。

求下一个没,加大余六十九,小余五百九十二,小余满没法得一个单位,加入大余,按前法命名。小余尽,就是灭。

推算五行用事日:立春、立夏、立秋、立冬,就是木、火、金、水开始用事的日子。各减去它们的大余十八,小余四百八十三,小分六,余数用纪命名,算外,就是各个立节气之前的土用事日。如果大余不够减,就加六十;小余不够减,就减大余一,加纪法;小分不够减,就减小余一,加气法。

推算卦用事日:根据冬至大余,乘以小余的六倍,就是坎卦用事日。加上小余一万零九十一,满元法则进位到大余,就是中孚卦用事日。

求下一个卦,各加大余六,小余九百六十七。其中四个正卦各自根据其中日,乘以小余的六倍。

推算日度的方法:用纪法乘朔积日,满周天则去掉,余数除以纪法,得到度,余数为分。命度从牛宿前五度起,依次减去各宿度,若不够一宿,就是天正十一月朔日夜半太阳所在的位置及分数。

求次日,太阳每天加一度,分不加,经过斗宿时减去斗分,若分少则退一度。

推算月度的方法:用月周乘朔积日,满周天则去掉,余数除以纪法,得到度,余数为分,按上述方法命名,就是天正十一月朔日夜半月亮所在的位置及分数。

求下一个月,小月加度二十二,分八百零六;大月再加一日,度十三,分六百七十九;分满纪法则得一度,然后加上当月朔日夜半月亮所在的位置及分数。其中冬月下旬,月亮在张宿、心宿时需要注意。

推算合朔度数的算法:用章岁乘以朔小余,满通法得到一个单位为大分,余数为小分。将大分加到朔日夜半的日度分上,分满纪法进为度,按前面的方法命名,就得到天正十一月合朔时日月共同所在的度数。

求下一个月,加上二十九度、大分九百七十七、小分四十二,小分满通法进为大分,大分满纪法进为度,经过斗宿时除去其分,就得到下个月合朔时日月共同所在的度数。

推算弦望时太阳所在度数:加上合朔度七、大分七百五、小分十、微分一,微分满二进为小分,小分满通法进为大分,大分满纪法进为度,按前面方法命名,就得到上弦时太阳所在度数。再加一次,得到望,再加得到下弦、后月合。

推算弦望时月亮所在度数:加上合朔度九十八、大分一千二百七十九、小分三十四,数满按前面方法命名,就得到上弦时月亮所在度数。再加一次,得到望,再加得到下弦、后月合。

推算日月昏明度的算法:太阳用纪法,月亮用月周,乘以所近节气的夜漏数,除以二百,得到明分。太阳用纪法减去明分,月亮用月周减去明分,余数为昏分。分别将明分和昏分加到夜半上,按通常方法得到度数。

推算合朔交会和月食的算法:放置所入纪的朔积分,加上所入纪下的交会差率数,用会通去除,余数就是所求年天正十一月合朔的离交度分。加上通数,满会通去掉,余数就是下个月合朔的离交度分。用朔望合数分别加上该月合朔的离交度分,满会通去掉,余数就是该月朔或望的离交度分。如果朔望的离交分小于或等于朔望合数,大于或等于入交限数,那么朔日就有交会,望日就有月食。

推算合朔交会月食时月亮在太阳轨道内外侧的算法:放置所入纪的朔积分,加上所入纪下的交会差率数,加倍会通去除,余数不满会通的,如果纪首是外,则天正合朔月亮在外;如果纪首是内,则天正合朔月亮在内。如果余数满会通则去掉,外满则转为内,内满则转为外。

求下一个月,加上通数,满会通去掉,加内满则变为外,加外满则变为内。如果先有交会后有月食,那么朔日在外则望日也在外,朔日在内则望日也在内。如果先有月食后有交会,看月食发生时的朔日:朔日在内则望日在外,朔日在外则望日在内。如果交会或月食的离交分小于或等于朔望合数,则是先交会后月食;如果大于或等于入交限数,则是先月食后交会。其中先交会后月食接近限数的,要提前观测;先月食后交会接近限数的,要推后观测。

求离交度数的算法:如果是先交会后月食,将当前离交度分除以日法,所得就是后退的交度分。如果是先月食后交会,用离交度分减去会通,余数除以日法,所得就是前进的交度分。余数都是度分。如果离交度在十五以上,虽然有交会也不会发生食;十以下会发生食;十以上,亏食很微小,只是日月光芒相互触及而已。亏食的多少,以十五作为衡量标准。

求日食亏起方位的算法:如果月亮在外道,先交会后食,亏蚀从西南角开始;先食后交,亏蚀从东南角开始。如果月亮在内道,先交会后食,亏蚀从西北角开始;先食后交,亏蚀从东北角开始。亏蚀的多少,如上用十五为法。如果交会正好在中间,则食尽。月食在太阳的对面,亏角与上述相反。

月亮运行的迟疾度数 损益率 盈缩积分 月行分

第一日 十四度十四分 益二十六 盈初 二百八十

第二日 十四度十一分 益二十三 盈积分十一万八千五百三十四 二百七十七

第三日 十四度八分 益二十 盈积分二十二万三千三百九十一 二百七十四

第四日 十四度五分 益十七 盈积分三十一万四千五百七十一 二百七十一

第五日 十四度一分 益十三 盈积分三十九万二千七百十四 二百六十七

第六日 十三度十四分 益七 盈积分四十五万一千三百四十一 二百六十一

第七日 十三度七分 损 盈积分四十八万三千二百五十四 二百五十四

第八日 十三度一分 损六 盈积分四十八万三千二百五十四 二百四十八

第九日 十二度十六分 损十 盈积分四十五万五千九百 二百四十四

第十日 十二度十三分 损十三 盈积分四十一万三百十 二百四十一

第十一日 十二度十一分 损十五 盈积分三十五万一千四百十三 二百三十九

第十二日 十二度八分 损十八 盈积分二十八万二千六百五十八 二百三十六

第十三日 十二度五分 损二十一 盈积分二十万五百九十六 二百三十三

第十四日 十二度三分 损二十三 盈积分十万四千八百五十七 二百三十一

第十五日 十二度五分 益二十一 缩初 二百三十三

第十六日 十二度七分 益十九 缩积分九万五千七百三十九 二百三十五

第十七日 十二度九分 益十七 缩积分十八万二千三百三十六 二百三十七

第十八日 十二度十二分 益十四 缩积分二十五万九千八百六十三 二百四十

第十九日 十二度十五分 益十一 缩积分三十二万三千六百八十九 二百四十三

第二十日 十二度十八分 益八 缩积分三十七万三千八百三十八 二百四十六

第二十一日 十三度三分 益四 缩积分四十一万三百十一 二百五十

第二十二日 十三度七分 损 缩积分四十二万八千五百四十六 二百五十四

第二十三日 十三度十二分 损五 缩积分四十二万八千五百四十六 二百五十九

第二十四日 十三度十八分 损十一 缩积分四十万五千七百五十一 二百六十五

第二十五日 十四度五分 损十七 缩积分三十五万五千六百二 二百七十一

第二十六日 十四度十一分 损二十三 缩积分二十七万八千九十九 二百七十七

第二十七日 十四度十二分 损二十四 缩积分十七万三千二百四十二 二百七十八

周日 十四度十三分有小分六百二十六分 损二十五有小分六百二十六 缩积分六万三千八百二十六 二百七十九 有小分六百二十六

推算合朔交会月食进入迟疾历的算法:放置所入纪的朔积分,加上所入纪下的迟疾差率数,用通周去除,余数满日法得到一日,余数不足的为日余,以日余命名,不计入日数,就得到所求年天正十一月合朔进入历法的日数。

求下一个月,加一日,日余四千四百五十。求望,加十四日,日余三千四百八十九。日余满日法则成一日,日数满二十七则去掉。又除去余数如周日余,如果日余不够减,则减一日,加上周虚。

推算合朔交会月食的定大小余:用入历日余乘以所入历的损益率,来增减盈缩积分,得到定积分。用章岁减去所入历的月行分,余数除定积分,所得结果按盈减缩加的方法调整本小余。如果增加后满日法,则交会加时在后一天;如果减少后不足,则交会加时在前一天。月食则根据定大小余确定日加时。如果入历在周日,则用周日日余乘以缩积分,得到定积分。用损率乘以入历日余,再用周日日余乘之,加上周日日度小分,然后减去定积分,余数为后定积分。用章岁减去周日月行分,余数乘以周日日余,加上周日度小分,用来除后定积分,所得结果加上本小余,方法同上。

推算加时:用十二乘以定小余,满日法得到一辰,从子时开始计数,不计入辰数,就得到朔望加时所在的辰。如果有余数不够一辰,则乘以四,除以日法,得到少、半、太。再有余数,则乘以三,除以日法,得到强。半法以上进位,不满半法舍弃。将强加到少上得到少强,加到半上得到半强,加到太上得到太强。得到两个强则为少弱,加到少上得到半弱,加到半上得到太弱,加到太上得到一辰弱。用所对应的辰来命名,就得到各自的少、太、半以及强、弱。如果月食的望日在中节前后四天以内,则看限数;在中节前后五天以上,则看间限。如果定小余小于或等于间限或限数,则从算上计为日。

斗宿二十六度四百五十五分 牛宿八度 女宿十二度 虚宿十度 危宿十七度 室宿十六度 壁宿九度

北方共九十八度四百五十五分

奎宿十六度 娄宿十二度 胃宿十四度 昴宿十一度 毕宿十六度 觜宿二度 参宿九度

西方八十度

井宿三十三度 鬼宿四度 柳宿十五度 星宿七度 张宿十八度 翼宿十八度 轸宿十七度

南方一百十二度

角宿十二度 亢宿九度 氐宿十五度 房宿五度 心宿五度 尾宿十八度 箕宿十一度

东方七十五度

表略

右边的中节二十四气,按照此方法推算,得到冬至十一月中。加上得到次月节,加上节得到其中月。中星以太阳所在为准,放置所求年二十四气的小余,乘以四,按方法得到一为少;余数不足少,再乘以三,按方法得到强;所得结果减去其节气的昏明中星,各得定值。

推算五星的算法

五星:木星称为岁星,火星称为荧惑星,土星称为填星,金星称为太白星,水星称为辰星。凡五星的运行,有慢有快,有停止有逆行。自从开天辟地,清浊开始分离,日月五星就聚集在星纪。从星纪出发,一起运行于天,快慢顺逆,互相追赶。星与太阳相会,同一宿同一度,称为合。从一次合到下一次合的日数,称为终。各将终的日数与一年的日数通分相约,得到终而率之,年数称为合终岁数,终数称为合终合数。两个率确定后,法数就产生了。用章岁乘以合数,得到合月法。用纪法乘以合数,得到日度法。用章月乘以岁数,得到合月分;除以合月法得到合月数,余数为月余。用通数乘以合月数,除以日法,得到大余。用六十去掉大余,余数为星合朔大余。大余的余数为朔小余。用通数乘以月余,用合月法乘以朔小余,两者相加,除以日法乘以合月法,得到星合进入月中的日数。余数用通法约简,得到进入月中的日余。用朔小余减去日法,得到朔虚分。用历斗分乘以合数,得到星度斗分。木星、火星、土星各用合数减去岁数,余数乘以周天,除以日度法,得到行星度数,余数为度余。金星、水星用周天乘以岁数,除以日度法,得到行星度数,余数为度余。

木星:合终岁数一千二百五十五。

合终合数一千一百四十九。

合月法二万一千八百三十一。

日度法二百一十一万七千六百七。

合月数十三。

月余一万一千一百二十二。

朔大余二十三。

朔小余四千九十三。

入月日十五。

日余一百九十九万五千六百六十四。

朔虚分四百六十六。

斗分五十二万二千七百九十五。

行星度三十三。

度余一百四十七万二千八百六十九。

火星:合终岁数五千一百五。

合终合数,二千三百八十八。

合月法,四万五千三百七十二。

日度法,四百四十万一千八十四。

合月数,二十六。

月余,二万三。

朔大余,四十七。

朔小余,三千六百二十七。

入月日,一十三。

日余,三百五十八万五千二百三十。

朔虚分,九百三十二。

斗分,一百八万六千五百四十。

行星度,五十。

度余,一百四十一万二千一百五十。

土星:合终岁数,三千九百四十三。

合终合数,三千八百九。

合月法,七万二千三百七十一。

日度法,七百一万九千九百八十七。

合月数,一十二。

月余,五万八千一百五十三。

朔大余,五十四。

朔小余,一千六百七十四。

入月日,二十四。

日余,六十七万五千三百六十四。

朔虚分,二千八百八十五。

斗分,一百七十三万三千九十五。

行星度,一十二。

度余,五百九十六万二千二百五十六。

金星:合终岁数,一千九百七。

合终合数,二千三百八十五。

合月法,四万五千三百一十五。

日度法,四百三十九万五千五百五十五。

合月数,九。

月余,四万三百一十。

朔大余,二十五。

朔小余,三千五百三十五。

入月日,二十七。

日余,十九万四千九百九十。

朔虚分,一千二十四。

斗分,一百八万五千一百七十五。

行星度,二百九十二。

度余,十九万四千九百九十。

水星:合终岁数,一千八百七十。

合终合数,一万一千七百八十九。

合月法,二十二万三千九百九十一。

日度法,二千一百七十二万七千一百二十七。

合月数,一。

月余,二十一万五千四百五十九。

朔大余,二十九。

朔小余,二千四百一十九。

入月日,二十八。

日余,二千三十四万四千二百六十一。

朔虚分,二千一百四十。

斗分,五百三十六万三千九百九十五。

行星度,五十七。

度余,二千三十四万一千三百六十一。

推算五星的方法:从壬辰元开始到所求年份,用合终合数相乘,满合终岁数得一,称为积合,余数称为合余。用合终合数减去合余,得到一的表示星合在往年,得到二的表示星合在前两年,没有余数的表示星合在当年。余数用来减去合终合数,作为度分。金、水星的积合,偶数是晨见,奇数是夕见。

推算五星合月:用月数、月余分别乘以积合,余数满合月法进一位月,得到积月,余数称为月余。用纪月除以积月,所得数外,是所入的纪,余数是入纪月。副用章闰乘以入纪月,满章月得一作为闰,从入纪月中减去,余数用岁中除去,余数作为入岁月,从天正开始计数,算外,是星合月。如果在闰月交替之际,用朔来校正。

推算合月朔:用通数乘以入纪月,满日法得一,作为积日,余数作为小余。用六十减去积日,余数作为大余,从所入纪开始计数,算外,是星合朔日。

推算入月日:用通数乘以月余,合月法乘以朔小余,两者相加,用通法约分,所得满日度法得一,是星合入月日,不满的是日余。从朔开始计日,算外,是入月日。

推算星合度:用周天乘以度分,满日度法得一作为度,余数作为余。从牛前五度开始计数,算外,是星合所在的度数。

求后续的合月:用月数加入岁月,用余数加月余,余数满合月法得一个月。月不满岁中,就在当年;满则减去,如有闰月则计算,余数为后年;再次满,在后两年。金、水星加晨得夕,加夕得晨。

求后续的合朔:用朔大、小余数加上合朔月的大、小余,如果月余累加成月,再加上大余二十九,小余二千四百一十九,小余满日法进一位大余,按前面的方法计数。

求后续的入月日:用入月日、日余加上入月日和余,余满日度法得一。如果前合朔小余满虚分,减去一日;后小余满二千四百一十九以上,减去二十九日;不满,减去三十日,其余是后合入月日,从朔开始计数。求后合度,用度数及分,按前合宿次来计数。

木星:晨与太阳相合,伏藏,顺行,十六天九十九万七千八百三十二分行星两度一百七十九万五千二百三十八分,在清晨出现于东方,在太阳之后。顺行,快速,每天行五十七分之十一,五十七天行十一度。顺行,缓慢,每天行九分,五十七天行九度后停留。停留二十七天后旋转。逆行,每天行七分之一,八十四天退十二度后再次停留。停留二十七天后再次缓慢,每天行九分,五十七天行九度后再次顺行。快速,每天行十一分,五十七天行十一度,在太阳之前,傍晚伏藏于西方。顺行,十六天九十九万七千八百三十二分行星两度一百七十九万五千二百三十八分,与太阳相合。一个周期共三百九十八天一百九十九万五千六百六十四分,行星三十三度一百四十七万二千八百六十九分。

火星:晨与太阳相合,伏藏,七十二天一百七十九万二千六百一十五分行星五十六度一百二十四万九千三百四十五分,在清晨出现于东方,在太阳之后。顺行,每天行二十三分之十四,一百八十四天行一百一十二度。再次顺行,缓慢,每天行十二分,九十二天行四十八度后停留。停留十一天后旋转。逆行,每天行六十二分之十七,六十二天退十七度后再次停留。停留十一天后再次顺行,缓慢,每天行十二分,九十二天行四十八度后再次快速。每天行十四分,一百八十四天行一百一十二度,在太阳之前,傍晚伏藏于西方。顺行,七十二天一百七十九万二千六百一十五分行星五十六度一百二十四万九千三百四十五分,与太阳相合。一个周期共七百八十天三百五十八万五千二百三十分,行星四百一十五度二百四十九万八千六百九十分。

土星:晨与太阳相合,伏藏,十九天三百八十四万七千六百七十五分半行星两度六百四十九万一千一百二十一分半,在清晨出现于东方,在太阳之后。顺行,行一百七十二分之十三,八十六天行六度半后停留。停留三十二天半后旋转。逆行,每天行十七分之一,一百零二天退六度后再次停留。停留三十二天半后再次顺行,每天行十三分,八十六天行六度半,在太阳之前,傍晚伏藏于西方。顺行,十九天三百八十四万七千六百七十五分半行星两度六百四十九万一千一百二十一分半,与太阳相合。一个周期共三百七十八天六十七万五千三百六十四分,行星十二度五百九十六万二千二百五十六分。

金星:晨与太阳相合,伏藏,六天退四度,在清晨出现于东方,在太阳之后逆行。缓慢,每天行五分之三,十天退六度。停留,七天不行动后旋转。顺行,缓慢,每天行四十五分之三十三,四十五天行三十三度后顺行。快速,每天行一度九十一分之十四,九十一天行一百零五度后顺行。更加快速,每天行一度九十一分之二十一,九十一天行一百一十二度,在太阳之后,在清晨伏藏于东方。顺行,四十二天十九万四千九百九十分行星五十二度十九万四千九百九十分,与太阳相合。一次相合,二百九十二天十九万四千九百九十分,行星度数相同。

金星:傍晚与太阳相合,伏藏,顺行,四十二天十九万四千九百九十分行星五十二度十九万四千九百九十分,在傍晚出现于西方,在太阳之前。顺行,快速,每天行一度九十一分之二十一,九十一天行一百一十二度后再次顺行。缓慢,每天行一度十四分,九十一天行一百零五度后顺行。更加缓慢,每天行四十五分之三十三,四十五天行三十三度后停留。停留七天不行动后旋转。逆行,每天行五分之三,十天退六度,在太阳之前,在傍晚伏藏于西方。逆行,六天退四度,与太阳相合。两次相合一个周期共五百八十四天三十八万九千九百八十分,行星度数相同。

水星:晨与太阳相合,伏藏,十一天退七度,在清晨出现于东方,在太阳之后。逆行,快速,每天退一度后停留。停留一天不行动后旋转。顺行,缓慢,每天行八分之七,八天行七度后顺行。快速,每天行一度十八分之四,十八天行二十二度,在太阳之后,在清晨伏藏于东方。顺行,十八天二千三十四万四千二百六十一分行星三十六度二千三十四万四千二百六十一分,与太阳相合。一次相合共五十七天二千三十四万四千二百六十一分,行星度数相同。

水星:傍晚与太阳相合,伏藏,十八天二千三十四万四千二百六十一分行星三十六度二千三十四万四千二百六十一分,在傍晚出现于西方,在太阳之前。顺行,快速,每天行一度十八分之四,十八天行二十二度后再次顺行。缓慢,每天行八分之七,八天行七度后停留。停留一天不行动后旋转。逆行,一天退一度,在太阳之前,在傍晚伏藏于西方。逆行,十一天退七度,与太阳相合。两次相合一个周期共一百一十五天一千八百九十六万一千三百九十五分,行星度数相同。

五星历步法

按法则把伏日度余加上星合日度余,余数满日度法得一进位,按之前方法计数,得到星见日及度余。用星行分母乘以见度分,如日度法得一,分不尽,超过法的一半也得一,每天加上所行分,分满其分母得一度。逆顺分母不同,用当行之母乘以原分,如原母得一,即为当行分。停留者承接前行,逆行则减,伏藏不满度,除去斗分,以行母为率。分有增减,前后相互调整。

武帝侍中平原刘智,用斗历更改历法,推演《四分法》,三百年减一日,以一百五十为度法,三十七为斗分。推甲子为上元,到泰始十年,岁在甲午,九万七千四百一十一岁,上元天正甲子朔夜半冬至,日月五星始于星纪,得到元首之端。用浮夸之说装饰,命名为《正历》。

当阳侯杜预著有《春秋长历》,其中说道:

太阳每天行一度,月亮每天行十三度十九分之七有余,日官应会集这种迟疾,来考察确定晦朔,设置闰月。闰月没有中气,北斗星斜指两辰之间,因此与其他月份不同。积累这些相互通晓,四时八节没有违背,才能成就一年,其精微达到了极致。获得其精微,与天道相合,那么事情有序而不差错。所以《传》说:“闰月用来校正时令,时令用来安排事务。”然而阴阳的运行,随运动而有差异,差异不断积累,最终与历法错乱。所以孔子、左丘明常在朔闰处发文,大概是来纠正得失,并借此宣明历数。

刘子骏创作《三正历》来修订《春秋》,日食有甲乙的三十四次,而《三正历》只得到一次日食,与其他各家相比最为疏漏。又六千多年就增加一日,一般年份应累计日数来排次,却故意增加,这是极不可行的。

自古以来,论述《春秋》的人多有过失,有的自创家术,有的用黄帝以来的各种历法,来推算经传中的朔日,都不相符合。日食发生在朔日,这是天象的验证,《经传》又记载了这些朔日食,可以说是得到了天象,但刘贾等儒者的说法,都认为是在初二或初三,公然违背圣人的明文,其弊病在于固守一种历法,不与天象变化同步。

我感慨于《春秋》中的事,曾撰写《历论》,详尽论述历法的普遍原理。其主要观点说:“天体运行不息,日月星辰各自运行于其位置,都是运动之物。运动之物就不一致,虽然运行度数有大致的量可以限定,但累积日成月、累积月成年,由于新旧交替,不得不有微小的差异,这是自然的道理。所以《春秋》中有连续月份出现日食的,有隔年不出现日食的,按理不能一致,而计算却守着固定的常数,因此历法没有不先后的。开始差失在毫毛之间,尚未被察觉,积累多了,导致弦望晦朔错误,就不得不修订历法以符合天象。《尚书》所谓‘敬顺上天,历象日月星辰’,《周易》所谓‘治历明时’,是说应当顺天以求符合,而不是用人为历法去验证天象。由此推论,春秋二百多年间,修订历法变通之处很多。虽然数术已经失传,但远寻《经传》的微言大义,大致情况可知,时代中的错误,则《经传》有验证。学者本应当详细遵循《经传》的月日、日食,来考察晦朔,推究时验;但都不是这样,各自根据其学说,来推算《春秋》,这无异于测量自己的脚印,却要削别人的脚来适应。”

我撰写《历论》之后,到咸宁年间,善于计算的李修、卜显,依据《历论》的体例制成历法,名为《乾度历》,上表进献朝廷。该历法符合日行四分的度数而稍微增加月行,采用三百年改历的意思,用二元互相推算,七十多年,以强弱变化承接,强弱差异很小,只要足以长期通用于盈缩变化。当时尚书及史官,用《乾度历》与《泰始历》参校古今记载,《乾度历》明显优于《泰始历》,比官历多出四十五处胜出。现在该历法之术完整保存。又同时考校古今十种历法来验证《春秋》,知道《三统历》最为粗疏。

《春秋》总计七百七十九日,其中《经》记载三百九十三日,《传》记载三百八十六日。有三十七次日食。其中三处没有干支。

《黄帝历》得到四百六十六日,一次日食。

《颛顼历》得到五百零九日,八次日食。

《夏历》得到五百三十六日,十四次日食。

《真夏历》得到四百六十六日,一次日食。

《殷历》得到五百零三日,十三次日食。

《周历》得到五百零六日,十三次日食。

《真周历》得到四百八十五日,一次日食。

《鲁历》得到五百二十九日,十三次日食。

《三统历》得到四百八十四日,一次日食。

《乾象历》得到四百九十五日,七次日食。

《泰始历》得到五百一十日,十九次日食。

《乾度历》得到五百三十八日,十九次日食。

现在的《长历》得到七百四十六日,三十三次日食。缺失三十三日,《经传》有误;四次日食,三处没有干支。

汉朝末年,宋仲子汇集七种历法来考察《春秋》,查验其中的夏历、周历的术数,都与《艺文志》所记载的不同,所以改名为《真夏历》、《真周历》。

穆帝永和八年,著作郎琅邪人王朔之创制《通历》,以甲子作为上元,累积九万七千年,以四千八百八十三为纪法,一千二百零五为斗分,以此上元作为天地开辟的起点。

后秦姚兴时期,正值孝武帝太元九年,干支为甲申,天水人姜岌创制《三纪甲子元历》,其概要中说:“治理历法的道理,必须审察日月运行,然后可以上考天时,下察地化。一旦失去根本,则四时就会变动。所以孔子编撰《春秋》,以日接续月,以月接续时,以时接续年,以年作为纪事开端,表明天时是人事的根本,因此王者重视此事。从伏羲以来,直到汉魏,各自制定历法,以求适中。考察其疏密,只有交会薄食可以验证。然而书契记载的,只有《春秋》著录了日食的变化,从隐公到哀公,共二百四十二年间,日食有三十六次,考察其晦朔,不知道用了什么历法。班固认为《春秋》依据《鲁历》,《鲁历》不正确,所以置闰失去次序。鲁国以闰余一的年份作为蔀首,检查《春秋》的置闰与此蔀不符。《命历序》说:孔子为了治理《春秋》的缘故,退而修订殷代旧历,使其数可以传给后世。这样,《春秋》应当用《殷历》来修正。现在考察其交会,不与《殷历》相应,用《殷历》考察《春秋》,月朔多不及该日,又用来检查《经》,大概多一日,《传》大概少一日。只是《公羊传》、《经》、《传》朔日不同,于理可以依从,而《经》有日食在朔日的验证,《传》则是错误的。服虔解释《传》用太极上元,太极上元是《三统历》刘歆所创的元,怎么能用于《春秋》?对于《春秋》而用汉历,从义理上岂不遥远?《传》的违失很多,不仅这一件事。襄公二十七年冬十一月乙亥朔,有日食。《传》说:‘辰在申,司历有过,再次失闰。’考察其去交分,交会应在这个月,而不是再次失闰。按刘歆历法对于《春秋》日食一个朔日,其余多在初二日。因此附会《五行传》,提出朓与侧匿的说法说:春秋时诸侯多失其政,所以月亮运行恒常迟缓。刘歆不认为历法失于天象,而为之作差谬之说。日食在朔日,这是天象的验证,而刘歆反以历法非难此,冤屈天象而辜负时历。杜预又认为周朝衰弱世道混乱,学者不得其真,现在所传的七种历法,都未必是当时的通行历法。现在确实用七家历法,来考校古今交会,确实没有验证,都是由于斗分疏略所致。《殷历》以四分之一为斗分,《三统历》以一千五百三十九分之三百八十五为斗分,《乾象历》以五百八十九分之一百四十五为斗分,现在的《景初历》以一千八百四十三分之四百五十五为斗分,疏密不同,法数各异。《殷历》斗分粗疏,所以不适用于今天。《乾象历》斗分细密,所以不能通用于古代。《景初历》斗分虽在粗细之间,但太阳所在的位置却差四度,日月亏食时,都不在其度次,假如太阳在东井宿发生日食,用月亮验证,却在参宿六度,差异如此,怎么可以考定天时人事呢?现在制定新历,以二千四百五十一分之六百五为斗分,太阳在斗宿十七度,天正月初一的位置,上可以考合于《春秋》,下可以取验于今世。用此考察《春秋》三十六次日食,正朔日的二十五次,食在初二的两次,食在晦日的两次,错误的五次,共三十三次日食,其余日食《经》中无干支名称,无法考其得失。图谶纬书都说‘三百年斗历改宪’。以现在新历施用于春秋时期,日食多在朔日,春秋时期到现在,共一千多年,交会弦望所以进退于三次食之间,此法可以永久使用,岂是三百年斗历改宪呢?

从甲子上元以来,到鲁隐公元年己未年,共八万二千七百三十六,到晋孝武帝太元九年甲申年,共八万三千八百四十一,算上。

元法:七千三百五十三。

纪法:二千四百五十一。

通数:十七万九千零四十四。

日法:六千零六十二。

月周:三万二千七百六十六。

气分:一万二千八百六十。

元月:九万零九百四十五。

纪月:三万零三百一十五。

没分:四万四千七百六十一。

没法:六百四十三。

斗分:六百零五。

周天:八十九万五千二百二十。一名纪日。

章月:二百三十五。

章岁:十九。

章闰:七。

岁中:十二。

会数:四十七。日月八百九十三岁,共四十七次交会,分数尽。

气中:十二。

甲子纪 交差:九千一百五十七。

甲申纪 交差:六千三百三十七。

甲辰纪 交差:三千五百一十七。

周半:一百二十七。

朔望合数:九百四十一。

会岁:八百九十三。

会月:一万一千零四十五。

小分:二千一百九十六。

章数:一百二十九。

小分:二千一百八十三。

周闰大分:七万六千二百六十九。

历周:四十四万七千六百一十。半周天

会分:三万八千一百三十四。

差分:一万一千九百八十六。

会率:一千八百八十二。

小分法:二千二百零九。

入交限:一万零一百零四。

小周:二百五十四。

甲子纪 差率:四万九千一百七十八。

甲申纪 差率:五万八千二百三十一。

甲辰纪 差率:六万七千二百八十四。

通周:十六万七千零六十三。

周日日余:三千三百六十二。

周虚:二千七百零一。

五星约法,根据出现为准,不系于元本。然而推算步骤究于元初,约法施用于当今,曲求其意,则各有适宜,所以作者两设其法。姜岌用月食检验太阳宿度所在,成为历术者的宗师。又著有《浑天论》,用此推算太阳在黄道上的运行,驳斥前儒的失误,并得到其中正理。