公元前……庚辰年甲子月开始算起,到太甲元年癸亥年,一共是三千五百二十三年。一直到元嘉二十年癸亥年,一共是五千七百三年,这些都是不算在正式计算里的。

正式计算的年数是三千六百四十八年。一年有十九个章(节气循环周期)。一个纪元有六百八十年。一个纪元有二百三十五个章月(一个月)。一个纪元有七千五百二十个月。一个纪元有七个闰月。一个纪元有二十二万二千七十天。一度有七十五分。一度的法则是三百四。一个气(节气)的法则是二十四。剩余数是一千五百九十五。一年有十二个节气。一天的法则是七百五十二。剩余数是三十六。总数是二万二千二百七。总数的法则是四十七。剩余的法则是三百一十九。一个月的周期是四千六十四。周天数是一万一千二十五。总周数是二万七百二十一。周日剩余数是四百一十七。周虚数是三百三十五。会数是一百六十。交限数是八百五十九。会月是九百二十九。朔望合数是八十。

甲子纪元是第一个纪元(迟疾差一万七千六百六十三,交会差八百七十七)。甲戌纪元是第二个纪元(迟疾差三千四十三,交会差二百七十九)。甲申纪元是第三个纪元(迟疾差九千一百四十四,交会差六百二十)。甲午纪元是第四个纪元(迟疾差一万五千二百四十五,交会差二十二)。甲辰纪元是第五个纪元(迟疾差六百二十五,交会差三百六十三)。甲寅纪元是第六个纪元(迟疾差六千七百二十六,交会差七百四)。

怎么推算纪元呢?先把从上元庚辰年到你要算的那一年的年数算出来,然后用元法(三千六百四十八)去除,如果除不尽,再用纪法(六百八十年)去除,如果还除不尽,剩下的就是你所要找的纪元年份了。除尽的部分就不用管了,剩下的就是下一个纪元了。比如说,从甲午纪元壬辰年算起,到现在的元嘉二十年癸未年,一共是二百三十一年,但这二百三十一年不算在正式计算里。

怎么推算月份呢?先把不算在正式计算里的年份数算出来,然后用章月(二百三十五)乘以这个年份数,得到的就是积月数,如果除不尽,剩下的就是闰余。如果闰余大于等于十二,那这一年就是闰年。

首先,咱们来说说怎么算出每年的正月初一。用一个固定的数字(通数)乘以某个积分,得到一个朔积分,然后根据满日法算出积日,不够一整日的就记作小余。再用60去除积日,不够60的余数就是大余,把大余记下来。这样,咱们就能算出所求年份正月初一在哪天了。

接下来,怎么算下一个月的初一呢?很简单,在大余里加上29,在小余里加上399。如果小余够一整天了,就从大余里扣除,这样就得到下个月初一了。如果小余超过了353,那就说明这个月是30天的大月。

然后是算上弦月、望(满月)和下弦月。在上弦月那一天,在大余里加7,在小余里加287,小分加3。如果小分够4了,就从小余里扣除,小余够一整天了,就从大余里扣除。方法跟算初一一样,算出来就是上弦月了。再加一次,就是满月,再加一次,就是下弦月。

二十四节气怎么算呢?把前面算出来的那个纪年数记下来,用余数乘以它,然后用365(满度法)去除,不够365的余数就是小余。再用60去除积没,不够60的余数就是大余,记下来。这样,咱们就能算出所求年份雨水节气是哪一天了。算下一个节气,就在大余里加15,小余里加66,小分加11。如果小分够一个节气了,就从小余里扣除;小余够一整天了,就从大余里扣除。这样就得到下一个节气的日期了。如果雨水节气在16号以后,那就用同样的方法倒着减,就能算出立春的日期。

最后,咱们来说说怎么算闰月。用闰余减去章岁,剩下的数乘以岁中,如果结果够一个章闰(就是闰月),那就说明这一年有闰月,从正月开始数,数到这个数就是闰月所在的月份。闰月有时会提前或延后,这时候就用没有中气的月份来调整。

最后,附上各个节气的限数和间数:

立春正月节 (限数一百九十四,间数一百九十)

雨水正月中 (限数一百八十六,间数一百八十二)

惊蛰二月节 (限数一百七十七,间数一百七十二)

春分二月中 (限数一百六十七,间数一百六十二)

清明三月节 (限数一百五十八,间数一百五十四)

谷雨三月中 (限数一百四十九,间数一百四十五)

立夏四月节 (限数一百四十二,间数一百三十九)

小满四月中 (限数一百三十六,间数一百三十四)

芒种五月节 (限数一百三十三,间数一百三十二)

夏至五月中 (限数一百三十一,间数一百三十二)

小暑六月节 (限数一百三十三,间数一百三十四)

大暑六月中 (限数一百三十六,间数一百三十九)

立秋七月节 (限数一百四十二,间数一百四十五)

处暑七月中 (限数一百四十九,间数一百五十三)

白露是八月的节气,限数一百五十七,间数一百六十二。秋分是八月中,限数一百六十七,间数一百七十二。寒露是九月的节气,限数一百七十七,间数一百八十二。霜降是九月中,限数一百八十六,间数一百九十。立冬是十月的节气,限数一百九十四,间数一百九十七。小雪是十月中,限数二百,间数二百三。大雪是十一月的节气,限数二百五,间数二百六。冬至是十一月中,限数二百七,间数二百六。小寒是十二月的节气,限数二百五,间数二百三。大寒是十二月中的节气,限数二百,间数一百九十七。

接下来是计算“没”的办法:因为雨水积聚的原因,用剩余的数乘以它,满了就按最大剩余数算,不满就按最小剩余数算,就像前面说的那样,所求的那一年就是雨水节气前“没”的天数。要算下一个“没”,就加上最大剩余数六十九,最小剩余数一百九十六,满了就按最大剩余数算,方法跟前面一样,算出来的是雨水节气后“没”的天数。(雨水节气前的“没”大多在旧的一年里,通常有五次“没”,官方用“没”来校正,一年通常有五次或六次“没”。最小剩余数用完就表示“灭”的日子。)如果雨水节气的最小剩余数是三十九或更少,那就要等到雨水节气后的六十天后才会有。

然后是计算土用事的方法:把立春节气的大、小剩余数和小分之数列出来,从大剩余数里减去十八,从小剩余数里减去七十九,从小分里减去十八,记下来,算完后,就是立春节气前土用事的日子。如果大剩余数不够减,就加六十;如果小剩余数不够减,就不用减,先从大剩余数里减一,再用度数法减去。立夏和立冬节气求土用事的方法都跟这个一样。

接下来是计算太阳所在度数的方法:用度数法乘以朔的积度,余数就是分。从室宿二开始算度数,然后用宿度除以它,算完后,就是正月朔日半夜太阳所在的度数和分数。要算第二天,就加一度,用室宿去度数和分数。

最后是计算月亮所在度数的方法:用月周乘以朔的积日,用周天减去它,余数如果满了度数法就作为积度,不满就作为分,度数的算法跟前面一样,就是正月朔日半夜月亮所在的度数和分数。要算下个月,小月就加度数二十二,分数一百三十三;大月就加度数三十五,分数二百四十五;分数满了度数法就成一度,方法跟前面一样,就是下个月朔日月亮所在的度数和分数。历法中关于上个月的方法:用十六除以月行分,得到大分,根据月亮运行的快慢加减,用室宿去度数和分数。

第一段:

哎,要算啥时候月食,先把你要算的那年的月份数乘以160,再加个22(这个22是啥玩意儿我也不知道,反正书上是这么写的),然后减去整的月份数,剩下的就是正月初一和交点(就是月亮轨道和黄道交点)的差了。要算下个月的,就在这个差的基础上加个160,再减去整的月份数。要算满月,就再加个合数(这个合数又是啥,书上没说)。如果初一或满月和交点的差,小于合数但大于交限数(这个交限数又是什么鬼),那初一就交会了,满月就月食了。

第二段:

算朔望的迟早,先把你要算的那年的正月初一的积分数,加上个15245(这个数字从哪来的?),然后减去整的周数,剩下的就是那年的正月初一在历法里的日子了。剩下的不满一天的,就是日余。要算下个月的,就在这个日余上加1,再加个734的日余。要算满月,就在这个日余上加14,再加个575.5的日余。如果日余满了27天,就减去27天,剩下的日余如果和一周的日余一样,就不用减;不一样的话,就减一天,再加个周虚(这周虚又是什么?)。如果日余满了27天,但不满一周的日余,就减去,算作一天;如果日余满了整周,就减去整周,算作一天。

第三段:

算月食的大小和余数,先把历法里的日余乘以损益率(一天加25),再把这个结果加到损益积分里(是减还是加看情况)。然后,再把历法里的日余乘以列差,再根据盈亏情况调整,算出定差。然后用定积分除以定差,再减去或加上朔望小余(盈则减,缩则加),得到定小余。如果加了定小余后满了27天,就说明朔望提前一天;如果减了定小余后不满一天,就加一天再减,说明朔望推迟一天。如果是整周,就用周日定数。

第四段:

最后算时间,把定小余乘以12,如果满了27天,就得到一个时辰,从子时开始算。剩下的余数乘以4,满了27天就加一,不满就看情况加少、半、太半。再把剩下的余数乘以3,满了27天就加一,不满就看情况加强、半强、太强。两个强合起来是小弱,一个强加个少是半弱,一个强加个半是太弱,一个强加个太半是一辰弱。然后根据时辰来命名。

首先,咱们得算出月食发生的时间。这个方法叫“推合朔月食加时满刻法”。具体来说,先用一百刻乘以算出来的月食小余数,方法跟算日食差不多,算出的结果不足十的,就再算出几分。然后,先减去夜里一半的时间,剩下的就是白天加上月食时间的总时长,白天的时间用完后,再算上夜里的时间。如果月食发生在农历十五前后四天以内,就用“限数”来算;如果超过四天,在十五前后五天以上,就用“间限数”来算。如果算出来的月食小余数,不足限数或间数,那就都按日来算。

接下来,这个表格是月亮每天运行速度的快慢,以及盈亏的计算方法。“月行迟疾度 损益率 盈缩积分 列差 差法” 这是个表格的标题,下面是具体数据,我就不翻译了,直接看数据就行:

一日 十四度十三分 益二十五 盈 二 二百六十

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

三日 十四度八分 益二十 盈三万六千九十六 四 二百五十五

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

五日 十三度十八分 益十一 盈六万三千一百六十八 五 二百四十六

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

七日 十三度七分 益 盈七万五千九百五十二 五 二百三十五

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

九日 十二度十七分 损九 盈七万二千一百九十二 三 二百二十六

十日 十二度十四分 损十二 盈六万五千四百二十四 三 二百二十三

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

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

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

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

十五日十二度二分 益二十四 缩 二 二百一十一

十六日十二度四分 益二十二 缩一万八千四十八 二 二百一十三

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

这个表格记录了月亮每天运行的度数、盈亏的数值,以及一些辅助计算的数字。 通过这些数据,就能更精确地计算出月食发生的时间以及持续时间。 总之,这套方法看着复杂,但实际上就是通过一系列的计算,来确定月食的具体时间。

十八号,中午十二点九分,增加了十七度,减少了四万九千六百三十二(个单位,下同),一共是二百一十八(个单位)。

十九号,中午十二点十四分,增加了十二度,减少了六万二千四百一十六,一共是二百二十三。

二十号,中午十三点一分,增加了六度,减少了七万一千四百四十,一共是二百二十九。

二十一号,中午十三点七分,增加了(一个未知数量的)度,减少了七万五千九百五十二,一共是二百三十五。

二十二号,中午十三点十二分,减少了五度,减少了七万五千九百五十二,一共是二百四十。

二十三号,中午十三点十六分,减少了九度,减少了七万二千一百九十二,一共是二百四十四。

二十四号,中午十四点一分,减少了十三度,减少了六万五千四百二十四,一共是二百四十八。

二十五号,中午十四点五分,减少了十七度,减少了五万五千六百四十八,一共是二百五十二。

二十六号,中午十四点八分,减少了二十度,减少了四万二千八百六十四,一共是二百五十五。

二十七号,中午十四点十一分,减少了二十三度,减少了二万七千八百二十四,一共是二百五十八。

周日,中午十四点十三分,减少了二十五度,减少了一万五百二十八,一共是二百六十。

(定)(定备九万三)(定意差)

小分一百三,减少二百二十四,一千四百八,法二千三百九。

计算朔日度数:用章岁乘以朔日小余,满通法为大分,不满为小分。用大分从朔日夜半的日度减去,满度则按前面说的方法处理,正月朔日日月合朔所在位置的总度数就是这样算出来的。

要算下个月的,加二十九度,大分一百六十一,小分十四,小分满通法从大分减,大分满度法从度数减。经室除度分。要算望日,加十四度,大分二百三十二,小分三十半。(求望月所在度数,加日度一百八十二,分一百八十九,小分二十三半。)

二十四节气 日所在度数 日中晷影 昼漏刻 夜漏刻 昏中星 明中星

雨水 室一(太强) 八尺二寸二分 五十(五分) 四十九(五分) 觜一(少强) 尾十一(强)

惊蛰 壁一(强) 六尺七寸二分 五十二(九分) 四十七(一分) 井九(半强) 箕四(少弱)

春分那天,身高是五尺三寸,体重是五十五斤半,年龄是四十四岁半,井宿二十九度,斗宿四度,身体状况一般。

清明节的时候,身高四尺二寸,体重五十八斤,年龄四十二岁,柳宿十二度,斗宿十四度半,身体状况不太好。

谷雨时节,身高三尺二寸,体重六十斤三分,年龄三十九岁七分,胃宿九度,身体状况很弱,张宿十度,斗宿二十五度半。

立夏,身高二尺五寸,体重六十二斤三分,年龄三十七岁七分,昴宿十一度,身体状况较弱,翼宿十度,女宿三度,状态都不太好。

小满时节,身高一尺九寸七分,体重六十三斤九分,年龄三十六岁一分,毕宿十五度,身体状况较弱,轸宿十度,虚宿二度,身体状况都不太好。

芒种,身高一尺六寸九分,体重六十四斤八分,年龄三十五岁二分,井宿三度,身体状况较弱,角宿十度,危宿七度,身体状况都不太好。

夏至那天,身高一尺五寸,体重六十五斤,年龄三十五岁,氐宿五度,室宿五度,身体状况一般。

小暑,身高一尺六寸九分,体重六十四斤八分,年龄三十五岁二分,鬼宿一度,身体状况较弱,房宿四度,壁宿六度,身体状况都不太好。

大暑,身高一尺九寸七分,体重六十三斤九分,年龄三十六岁一分,柳宿十二度,身体状况较弱,尾宿八度,奎宿十二度,身体状况都不太好。

立秋,身高二尺五寸,体重六十二斤三分,年龄三十七岁七分,张宿五度,身体状况一般,箕宿三度,胃宿二度,身体状况较弱。

处暑,身高三尺二寸,体重六十斤三分,年龄三十九岁七分,翼宿二度,身体状况一般,斗宿三度半,昴宿七度,身体状况较弱。

白露,身高四尺二寸,体重五十八斤,年龄四十二岁,翼宿十七度,身体状况很弱,斗宿十四度半,毕宿十六度半,身体状况都不太好。

秋分,身高五尺三寸,体重五十五斤半,年龄四十四岁半,轸宿十五度,斗宿二十五度,井宿九度,身体状况一般。

寒露,身高六尺七寸,体重五十二斤九分,年龄四十七岁一分,亢宿一度,身体状况一般,牛宿八度,井宿二十九度,身体状况较弱。

霜降那天,氐宿七度(差不多七度),身高八尺二寸(八分),年龄五十岁(差不多五十岁),另一个是四十九岁(差不多四十九岁)。女的十一岁半(略弱),柳宿十一度(略强)。

立冬那天,心宿二度(略弱),身高九尺九寸(一分),年龄四十八岁(四分),另一个是五十一岁(六分)。危宿二度(弱),张宿八度(太弱)。

小雪那天,尾宿十二度(太强),身高一丈一尺三寸(四分),年龄四十六岁(七分),另一个是五十三岁(三分)。危宿十三度(略强),翼宿八度(太强)。

大雪那天,箕宿十度,身高一丈二尺四寸(八分),年龄四十五岁(六分),另一个是五十四岁(四分)。室宿九度(略强),轸宿八度(略强)。

冬至那天,斗宿十四度(强),身高一丈三尺,年龄四十五岁,另一个是五十五岁。毕宿八度(太强),角宿七度(略强)。

小寒那天,牛宿三度(略强),身高一丈二尺四寸(八分),年龄四十五岁(六分),另一个是五十四岁(四分)。奎宿十五度(弱),亢宿九度。

大寒那天,女宿十度半(强),身高一丈一尺三寸(四分),年龄四十六岁(七分),另一个是五十三岁(三分)。立春那天,危宿四度,身高九尺九寸(一分)。

立春那天,危宿四度,身高九尺九寸(一分),年龄四十八岁(四分),另一个是五十一岁(六分)。昴宿九度(弱),心宿四度(强)。

接下来是推算五星的方法:

合岁、合数、日度法、室分,分别对应:木星是三百四十四、三百一十五、九万五千七百六十、二万三千六百二十五;火星是四百五十九、二百一十五、六万五千三百六十、一万六千一百二十五;土星是三百八十三、三百七十、十一万二千四百八十、二万七千七百五十;金星是二百六十七、一百六十七、五万七百六十八、一万二千五百二十五;水星是七十九、二百四十九、七万五千六百九十六、一万八千六百七十五。

木星后元是丙戌年,从晋朝咸和元年到元嘉二十年癸未年,一共一百一十八年。

火星后元是乙亥年,从元嘉十二年到元嘉二十年癸未年,一共九年。

土星后元是甲戌年,从元嘉十一年到元嘉二十年癸未年,一共十年。

公元414年(金后元甲申),公元379年(晋太元九年),到公元444年(元嘉二十年癸未),一共六十年。

公元418年(水后元乙丑),公元424年(元嘉二年),到公元444年(元嘉二十年癸未),一共十九年。

接下来是计算五星位置的方法:先确定每颗星的起始年份,然后计算到目标年份的年数,用这个年数乘以一个系数(合数),得到一个数值(积合)。如果这个数值不是整数,余数就叫做合余。如果合余比较大,就用合数去除,商数代表星体在之前的年份合,余数代表在之前的年份合。如果合余不足以除尽,那就是目标年份。木星、土星、金星会有往年合,火星会有前往年合,水星一年可能合三次或四次。用合余减去合数得到度分(水星的度分如果等于或超过一个周期,就减去一个周期)。再用周天数(111135)乘以度分,得到积度。如果积度不是整数,余数叫做度余。用室度(2)加上星体合的度数,这个就是星体所在度数。用合数乘以目标年份,加上雨水节气后剩余的天数,再加上度余,得到日余。如果日余超过日度法,就从积度里减去日度法,得到星体合的日数。接下来计算星体出现的天数:用一个固定的天数(比如木星是16天)加上星体合的日数,如果超过日度法,就减去日度法,得到星体出现的天数。计算星体出现的位置,方法类似,用一个固定的度数(比如木星是2度)加上星体合的度数,如果超过日度法,就减去日度法,得到星体出现的位置。用星体运行的分母(比如木星是23)乘以出现位置的余数,如果超过日度法,就减去日度法,得到每天运行的分数。如果分数超过分母,就加一度。顺行和逆行分母不同(比如木星顺行分母是23,逆行分母是7),要根据情况分别计算,逆行要减去。计算过程中,不用记录度数,直接用室度减去分数,如果分数不够减,就从度数里借位。五星的室度和分数都不同,如果在运行分数内,就要根据室度减去。

木星:一开始与太阳合,然后隐藏16天,日余是41780,运行2度,余数是77847.5,清晨出现在东方(大约比日出早13.5度)。顺行时,每天运行23/4分,115天运行20度。停留26天,停止运行,然后逆行。逆行时,每天运行1/7分,84天后退12度。再次停留26天。顺行时,115天运行20度,傍晚隐没在西方,日度余数和开始一样,与太阳合。一个周期是398天,日余是83560,行星运行33度,余数是59935。

一开始,火星和太阳在一起,然后就潜伏起来了,七十一整天呢!这段时间,太阳走了两万四千八百一十二又二分之一度,火星自己也走了五万四千九百四十度。早上,它出现在东方,(比太阳慢了十七度半左右)。接下来火星运行速度很快,每天走太阳的五分之七,一百八十三天半就走了七十七度半。有时候速度会稍微慢一点,每天走太阳的四分之七,一百二十六天走了七十二度,这就是所谓的“大迟”。 速度最慢的时候,每天只走太阳的七分之二,四十二天只走十二度。有时候它干脆停下来不动,十二天后才继续走。 也有些时候,它每天走太阳十分之三,六十天就倒退了十八度,然后又停了十二天。速度忽快忽慢,四十二天走了十二度。速度稍微快一点的时候,一百二十六天走了七十二度。最后,一百八十三天半走了七十七度半,傍晚的时候它就跑到西方去了,和太阳的度数差跟开始一样,又和太阳汇合了。整个周期是七百七十九天,太阳走了四万九千六百二十五度,火星走了四百一十四度,还剩三万三千五百度。减去一个完整的圆周,最终火星的运行度数是四十九度,还剩一万七千三百七十五度。

接下来说土星。一开始,土星也和太阳在一起,然后就潜伏了十八天。这期间,太阳走了四千四百八十二又二分之一度,土星走了二度,还剩四万六千八百四十七又二分之一度。早上,它出现在东方(比太阳慢了十五度半左右)。然后土星运行速度比较稳定,每天走太阳的十二分之一,八十四天走了七度。有时候它会停下来不动,三十六天后开始倒着走。每天倒退太阳的十七分之一,一百零二天倒退了六度。然后它又停了三十六天。之后,它又开始正常运行,八十四天走了七度,傍晚的时候它就跑到西方去了,和太阳的度数差跟开始一样,又和太阳汇合了。整个周期是三百七十八天,太阳走了八千九百六十五度,土星走了十二度,还剩九万三千六百九十五度。

金星啊,一开始跟太阳在一起,然后就“伏”起来了,藏了41天。这期间太阳走了49684又半个度,金星也走了51圈,还剩49684又半个度,最后出现在西方。这段时间,它比太阳慢了十度。然后呢,它就加速了,每天走一度又十三分之三,91天走了112度,稍微有点慢。后来,它每天走一度又十三分之二,91天走了115度,就更慢了。再后来,它每天走十五分之十一,45天走了33度。然后它就停了,不动了,过了8天才又慢下来。接着,它每天走三分之二度,9天倒退了6度,跑到西方去了。在西方“伏”了6天,又倒退了4度,最后又跟太阳汇合了。又过了6天,倒退了4度,早晨出现在东方。反过来走的时候,9天倒退6度。然后又停了8天。再加速,45天走了33度。速度稍微快一点的时候,91天走了115度。速度很快的时候,91天走了112度,早晨出现在东方,“伏”着,太阳走的度数跟之前一样,最后又跟太阳汇合了。整个周期是583天,太阳走了48610度。减去一个周期,金星最终运行了218度,还剩36760度。合一次周期是291天,剩余49684又半个度,金星的运行情况就是这样。

水星呢,一开始也跟太阳在一起,然后“伏”了17天。这段时间太阳走了71210又半个度,水星走了34度,还剩71210又半个度,出现在西方。这段时间,它比太阳慢了17度。然后它加速了,每天走一度又三分之一,18天走了24度,有点慢。后来,它每天走七分之五度,7天走了5度。然后它就停了,不动了,过了4天,傍晚出现在西方,“伏”着。 “伏”了11天,倒退了6度,又跟太阳汇合了。又过了11天,倒退了6度,早晨出现在东方。停了4天。然后它加速,但速度慢,7天走了5度。速度快的时候,18天走了24度,早晨出现在东方,“伏”着,太阳走的度数跟之前一样,最后又跟太阳汇合了。整个周期是115天,太阳走了66725度,水星的运行情况跟之前一样。合一次周期是57天,剩余71210又半个度,水星的运行情况也跟之前一样。盈亏加减,用十六除以月行度数,用日法除以盈亏度数,然后减去度数,盈亏加减就是这样算的。

推算卦象:因为雨水多少的剩余,把大余加6,小余加319,小余满3648就成一天。太阳满27天,剩余不足的就加减,不加周虚。

公元443年,承天向尚书大人汇报说:“现在咱们已经改用《元嘉历》了,计时工具(漏刻)跟以前的不一样,应该改进一下。按照《景初历》的说法,春分那天的白天长,秋分那天的白天短,咱们一直用的漏刻,冬至以后白天的时间比冬至以前长。而且白天长短的变化,增减没有规律,这不仅是因为以前的方法不精确,也因为抄写过程中出现了错误。现在咱们二至二分都取其准确数值,那么二至前后就没什么差异了。我们对旧的漏刻进行了增减修改,参考了日影观测的结果,制定了新的标准,改用二十五箭计时。请尚书大人下令让漏刻官员进行测试使用。”尚书大人同意了。

以前那些读书人,根据一些图纬书上的说法,认为月亮运行有九条轨道。所以他们画了九个圆圈,互相交错,检查月亮运行的顺序,快慢变化,根本没法按照规律来。刘向论述这九条轨道说:“青道两条从黄道东边出来,白道两条从黄道西边出来,黑道两条从北边出来,赤道两条从南边出来。”他还说:“立春、春分,月亮从东边的青道运行;立夏、夏至,月亮从南边的赤道运行。秋天走白道,冬天走黑道,各走各的轨道。” 按理说太阳运行在黄道上,这是阳的路,月亮是阴精,不走阳的路,所以它有时在黄道外,有时在黄道内,出入黄道不超过六度。月亮进入黄道十三天多一点出来,出来后又十三天多一点进入黄道,这样二十七天就进出一次。如果月亮在黄道上和太阳相遇,就会发生日食。汉朝的刘洪研究过月亮的运行,制定了阴阳历法。公元443年,宋文帝让著作郎吴癸根据刘洪的方法,制定了新的算法,让太史局使用。

《元嘉历》的月行阴阳法是:

阴阳历 损益率 兼数

一日 益十七 初

二日(前限余六百六十五微分一千七百三十八) 益十六 十七

三日 益十五 三十三

四日 益十二 四十八

五日 益八 六十

六日 益四 六十八

七日 益一 七十二

八日 损二 七十三

九日 损六 七十一

十日 损十 六十五

十一日 损十三 五十五

十二日 损十五 四十二

十三日(后限余二千一十九微分一千七十九) 损十六 二十七

分日(二千六百八十五半) 损十六大(大者五千三百十一,七十一分之三千四百七十二)

算了一圈,一共是五万五千五百一十七天半。

差率是一万一百九十。

微分法是一千八百七十八。

接下来算阴阳历,就是把会合月减去已经过去的月份,剩下的用会合数乘以它,再加上所过去的纪元交会差,再乘以周天数。满微分法就叫大分,不满的叫微分。大分如果满了周天就减去周天数,剩下的不满历周的就是入阳历的天数。剩下的天数按照月周算,一天算一天,额外算的,就是所求年份正月初一合朔入历的天数。不满一天的就是日余。

要算下个月,就加两天,日余是一千三百三十一天,微分是一千五百九十八,按照这个方法算出天数,如果天数满了十三就减去十三,剩下的日余就按分数算天数。阴阳历最终平稳地进入正轨,入历在前面限度内余数在前,后面限度内余数在后,月运行在中间。

接下来算朔、弦、望的定数:分别把入迟疾历盈缩的定积分,乘以章岁,再用差法除以它,得到的满通法就是大分。不满的,就用微分法乘以它,按照这个方法算出微分。盈减缩加阴阳日余,盈不足的,就用月周进退天数来确定,用确定的日余乘以损益兼数,就是加时定数。

算夜半入历:用差率朔小余,按照微分法得到一,用它减去入历余,如果不够,就加上月周再减,退一天,退去分数天数,加上它的分数,把微分的一半作为小分,这就是朔日夜半入历的历余小分。

算第二天,加一天,日余十六,小分三百二十,小分按照会合余数来算,余数满了月周就减去,再加一天。历法算完了,剩下的日余满了分数天数就减去,回到入历的开始。不满分数天数的,就记下来,加上余数一千二百九十四,小分七百八十九半,就是进入下一个历法的数。

算夜半定日:用朔小余减去入迟疾历日余,如果不够一天,就得到周日,加上余数四百一十七,这就是月夜半入历日及其余数。用日余乘以损益率,盈缩积分,就是定积分。满通法就是大分,不满的就用会合月乘以它,按照这个方法算出小分,用盈加缩减阴阳日余,盈不足就进退天数来确定。用确定的日余乘以损益率,按照月周,用损益兼数,就是夜半定数。

算昏明数:用损益率乘以最近节气夜里的漏刻数,二百分之一是明,用它减去损益率就是昏,再用损益夜半数就是昏明定数。

首先,咱们得算算月亮离黄道有多远。方法是:把月亮运行的时间,按照昏暗和明亮的时间来定个数,然后除以十二,剩下的部分,三分之一算少,不满三分之一算多,两个“少”合起来才算一个“弱”。最后算出来的结果就是月亮离黄道的度数。

公元464年,南徐州从事史祖冲之给皇帝上奏说:现在的历法太粗糙了,不够精确,各种说法互相矛盾,根本搞不清哪个是对的。何承天虽然想改进历法,但方法太简单,现在已经和实际情况差得很远了。我仔细研究后发现,至少有三个大问题:第一,日月的位置,偏差能达到三度;第二,冬至夏至的白昼时间,差不多差了一天;第三,五星的出现和消失,时间偏差最长能到四十天,运行方向有时还会反过来,甚至位置能错两宿。冬至夏至算错了,闰月就安排不对;星宿的位置不对,观测就没办法准确定位。我赶上这么好的时代,有幸为皇上效力,虽然能力有限,但还是想尝试着制定一个新的历法。我的改进主要有两点,具体方法有三点。

第一点改进是关于闰年的。旧历法十九年七闰,闰年太多了,过两百年就会差一天。闰年安排错了,历法就需要不断修改,历法改来改去,都是因为这个问题。所以我把章法改成了三百九十一年一百四十四闰。这样就能和周朝、汉朝的历法相符,以后就能一直用下去,不用再改了。第二点改进是关于冬至的。 《尧典》上说:“日短星昴,以正仲冬。”根据这个说法,唐朝的冬至,太阳在现在的星宿左边大约五十多度。汉朝初期,用的是秦朝的历法,冬至太阳在牵牛星六度的位置。汉武帝改用《太初历》后,冬至太阳在牛宿的起始位置。东汉的《四分历》,冬至太阳在斗宿二十二度的位置。晋朝姜岌根据月食观测太阳,发现冬至在斗宿十七度。现在我综合考虑了这些情况,又结合了中星和月食,发现冬至太阳应该在斗宿十一度。总的来说,不到一百年,偏差就达到了两度。旧历法规定冬至太阳在固定的位置,但天象不断变化,七曜星宿的位置也和历法越来越不符。错误越来越明显,就必须改历法,但这种改法只能凑合一时,不能长久使用,所以历法一直改来改去,也是因为这个问题。所以我把冬至的位置设定为每年略有不同,这样就能和汉朝的记录相符,精确可靠,以后也不用经常改了。

好家伙,这篇文章讲的是改历法的事儿。首先,他说了好几种理由为啥要选甲子年做上元,也就是新历法的起始年。

第一种说法,是说把“虚”宿放在正北,对应初九爻,这在古代星象学里代表着元气的开始,所以甲子年应该放在这里。以前虞喜先生也这么说过,而且现在通用的历法上元日度也从“虚”宿开始。第二种说法,就是说甲子是天干地支的第一个组合,历法应该从这里开始。但是从黄帝开始,之前的十一个历法,上元都不是甲子年。而现在这个新历法,上元就是甲子年。第三种说法,是说历法里很多内容都应该从上元年开始算,但是之前的《景初历》计算日月交会的时间有误差,只是简单地调整了一下朔日,条理混乱,没遵循古法。而这个新历法,日月五星的交会时间都从上元岁首开始算,这样就能准确地反映天象,群星运行都从一个源头开始,这才是真正的古法。

接下来,他又解释了这套新历法的精妙之处。他说这套历法既能准确预测天象,又能实际应用,就像用尺子测量一样准确可靠,即使是细微的天象变化也能精确计算。他强调这套历法经过仔细推敲,完善严密,既有简洁之处,也有复杂之处。简洁的部分,逻辑清晰,没有问题;复杂的部分,也不是胡乱设计的。为啥要这么复杂呢?因为闰年的计算很复杂,需要精确到毫厘,才能保证历法的长期准确性。所以他反复推敲,一点也不敢马虎,就是为了让历法长久稳定。他担心有人觉得他的方法太复杂,或者只听信别人的说法,而不仔细看他的成果。所以他把所有细节都写清楚了,希望大家能仔细研究。希望朝廷能认真审核他的方案,让他有机会把细节再详细解释一下,为国家历法增添光彩。

最后,他列出了从上元甲子年到宋大明七年癸卯年,一共五万一千九百三十九年;以及其他一些历法参数:

元法,五十九万二千三百六十五。

纪法,三万九千四百九十一。

章岁,三百九十一。

章月,四千八百三十六。

章闰,一百四十四。

闰法,十二。

月法,十一万六千三百二十一。

日法,三千九百三十九。

余数,二十万七千四十四。

岁余,九千五百八十九。

哎,这数字可真多!没分是三百六十万五千九百五十一。没法是五万一千七百六十一。周天是一千四百四十二万四千六百六十四。虚分是一万四千四百四十九。行分法是二十三。小分法是一千七百一十七。通周是七十二万六千八百一十。会周是七十一万七千七百七十七。通法是二万六千三百七十七。差率是三十九。

接下来是推算朔日的办法:先把上元年的数字写下来,然后用章月乘以它,满章岁就是积月,不满的就算闰余。如果闰余超过二百四十七,那这一年就是闰年。再用月法乘以积月,满日法就是积日,不满的叫小余。从积日里减去六十的倍数,剩下的就是大余。用天干地支记下大余,这就是天正十一月朔日。如果小余超过一千八百四十九,这个月就是大月。要算下个月的朔日,就在大余里加二十九,小余里加二千九十,如果小余超过日法,就从大余里减去六十的倍数,再用天干地支记下,这就是下个月的朔日。要算弦望日呢?就在朔日的大余里加七,小余里加一千五百七,小分加一,如果小分超过四,就从小余里减去,如果小余超过日法,就从大余里减去六十的倍数,再用天干地支记下,这就是上弦日。依次类推,就能算出望日、下弦日和下个月的朔日了。

推算闰月的方法:用闰余减去章岁,剩下的如果够闰法,就说明有一个闰月,用天干地支记下,这就是闰月所在的位置。闰月有进有退,以没有中气的那个月为准。

接下来是推算二十四节气的办法:先把上元年的数字写下来,然后用余数乘以它,满纪法就是积日,不满的叫小余。从积日里减去六十的倍数,剩下的就是大余。用天干地支记下大余,这就是天正十一月冬至日。要算下一个节气,就在大余里加十五,小余里加八千六百二十六,小分加五,如果小分超过六,就从小余里减去,如果小余超过纪法,就从大余里减去六十的倍数,再用天干地支记下,这就是下一个节气日。要算土用事,就在冬至的大余里加二十七,小余里加一万五千五百二十八,这就是季冬土用事日。再加九十一在大余里,加一万二千二百七十在小余里,这就是下一个土用事日。

最后是推算没日的办法:用九十乘以冬至的小余,再从没分里减去,够没法就是没日,不够就剩下日余,用天干地支记下冬至,这就是没日。

话说这算日子,可真是门学问。首先,要算“次没”,就是下一个日没的时间。加69日,再加上34442日,算完之后,如果超过了某个值,就要减去这个值,再算。总之,日子算完之后,剩下的就都是要“灭”掉的。

接下来,要算太阳在天空中的位置,也就是度数。用一个叫“纪法”的东西乘以日数,再减去周天(360度),剩下的就是度数,不足一整圈的叫度余。然后用一个虚数除以度余,算完之后,就能知道十一月朔日半夜太阳的位置了。要算下个月太阳的位置,大月就加30度,小月就加29度,再减去一些度数。然后,再用一个小分法除以度余,得到行分,剩下的就是小分。小分多了就从行分里减,行分多了就从度数里减。算下一天的时候,就加一度,再减去6个行分和147个小分。

要算月亮的位置,就用朔日(农历每月初一)剩余的日数乘以124,得到度余。再用朔日剩余的日数乘以860,得到微分。如果微分超过了某个值,就从度余里减去,度余超过了某个值,就从度数里减去,最后再减去朔日半夜太阳的位置,就得到月亮的位置了。算下个月月亮的位置,大月就加35度,度余是31834,微分是77967;小月就加22度,度余是17261,微分是63736。多余的也要减去。

最后,这里还有一份迟疾历,记录了月亮每天运行的度数、损益率、盈缩积分和差法:

```

迟疾历:

月行度 损益率 盈缩积分 差法

一日 十四行分十三益七十 盈初 五三○四

二日 十四十一 益六十五 盈百八十四万二千三百一十六 五二七○

三日 十四八 益五十七 盈三百五十五万七百六 五二一九

四日 十四四 益四十七 盈五百五万八千二百八 五一五一

五日 十三二十二 益三十四 盈六百二十九万七千八百五十七 五○六六

六日 十三十七 益二十二 盈七百二十万二千六百九十一 四九八一

七日 十三十一 益六 盈七百七十七万二千七百一十 四八七九

八日 十三五 损九 盈七百九十四万九百五十二 四七七七

九日 十二二十二 损二十四 盈七百七十万七千四百一十五 四六七五

十日 十二十六 损三十九 盈七百七万二千一百 四五七三

```

这表格里记载了月亮每天运行的度数,以及一些用来修正计算的数值,看起来复杂得很,我可算不明白。

十一月十一日,是“十一日 十二十一 损五十二 盈六百三万五千七 四四八八”;简单来说,就是进行某种计算,减去52,结果加上60300057,最后得到4488。具体是什么计算,我暂时还不清楚。

十二日是“十二日 十二八 损六十 盈四百六十六万三千一百 四四三七”,也是类似的计算,减去60,加上4663100,最后结果是4437。 这每天的数字变化,看起来像是某种规律性的推算,但具体是什么,我还需要进一步研究。

十三日“十二六 损六十五 盈三百九万三百二 四四○三”;十四日“十二四 损七十 盈百三十八万三千五百八十 四三六九”;十五日“十二五 益六十七 缩四十五万七千六十九 四三六八”; 从这里开始,出现了“益”和“缩”字,这说明计算方式可能发生了变化,不再单纯是加减法。

十六日“十二七 益六十二 缩二百二十三万七百五十五 四四二○”;十七日“二十二 益五十五 缩三百八十七万五百一十四 四四七一”;十八日“二十四 益四十四 缩五百三十万九千三百八十五 四五三九”;十九日“二十九 益三十二 缩六百四十八万四百四 四六二四”;二十日“十三一 益十九 缩七百三十一万六千六百八 四七○九”;这些日子,计算方法似乎保持一致,都是“益”和“缩”的组合。

二十一日“十三七 益四 缩七百八十一万七千九百九十六 四八一一”;二十二日“十三十三 损十一 缩七百九十一万七千六百七 四九一三”;二十三日“十三十九 损二十七 缩七百六十一万五千四百四十 五○一五”;二十四日“十四一 损三十九 缩六百九十万一千四百九十五 五一○○”;看来,“损”字又出现了,计算方法又有了变化。

二十五日“十四六 损五十二 缩五百八十七万二千七百三十五 五一八五”;二十六日“十四十 损六十二 缩四百四十九万九千一百五十九 五二五三”;二十七日“十四十二 损六十七 缩二百八十五万七千七百三十二 五二八七”;二十八日“十四十四 损七十四 缩百八万二千三百七十九 五三二一”。 这些数字和运算,看起来很复杂,像是某种天文历法计算。

最后一句“推入迟疾历术:以通法乘朔积日为通实,通周去之,余满通法为日,不尽为日余。命日算外,天正十一月朔夜半入历日也。” 这段话解释了整个计算过程的原理,说是用某种“通法”乘以朔日(农历每月初一)的积累天数得到“通实”,再减去一个“通周”,剩下的数如果能被“通法”整除,就是某一天;如果不能整除,则余数代表某一天的剩余部分。 这句的意思是说,这些计算是在天正十一月朔日(农历十一月初一)半夜开始进行历法推算。 总而言之,这段文字描述了一种复杂的历法计算方法。

咱们先算下个月,大月就加两天,小月加一天,剩下的天数都加上1746。算到27天的时候,剩下的天数是14631,就把它减掉。

接下来算第二天,直接加一天就好。然后算算这天在历法中的具体位置:用半夜进入历法时剩下的天数乘以损益率,再把盈亏累加起来,根据差率调整,得到的结果就是这天的度数,不够一整的度数就是度数的余数。盈数就加,亏数就减,根据历法规则调整,得到最终的度数。分也用同样的方法计算。算第二天的时候,根据当天运行的快慢加减天数,多余的分数也用同样的方法处理掉。

这个阴阳历的损益率是这样的:第一天加16,第二天加15,第三天加14……一直到第八天减2,第九天减6,以此类推,直到第十四天减16。

要推算阴阳历,先把总数减去358888.5,如果不够这个数,就按阳历算,够了就减掉,按阴历算。每满一个周期算一天,不够的算作剩余天数,记在日算之外。比如,天正十一月朔日半夜进入历法计算。

再算下个月,大月加两天,小月加一天,剩下的天数都加上2779。算到13天的时候,剩下的天数是15987.5,就把它减掉。阳历算完就接阴历,阴历算完就接阳历。算第二天,直接加一天。要算朔望的差值,用229乘以朔日剩余的天数,如果满330就作为剩余天数,不够就乘以2得到小数部分,这就是朔望差。加上14天,剩余天数是21186,小数部分是125。小数部分满660就从剩余天数里减掉,剩余天数满一个周期就算一天,这就是望的差值。再加下去,就是下个月的朔日了。

首先,咱们得算合朔月食。先把朔望夜半的时刻,还有剩下的日子,都记下来。如果剩下的日子超过半天,就把多余的半天减掉。然后加上333小分,再用差值加上去。如果小分超过666,就从剩下的日子里扣除。如果剩下的日子满了,就按照正常的算法来算日子。日子满了就减去一个历法周期。如果算出来的日子超过了预期的日子,那就把朔望的时刻加到历法周期里去。如果朔望的时刻加到历法周期里后,剩下的日子是4198,小分在428以下,那就是12天后;如果剩下的日子是11788,小分在481以上,那就是朔日交会,望日就发生月食了。

接下来,咱们算合朔月食的大小余数。把差值和剩下的日子,还有夜半时刻的迟早,都加起来。如果日子满了,就按照正常的算法来算日子,然后把朔望的时刻加到历法周期里。再用历法周期剩下的部分乘以损益率,然后用盈亏的积分来调整,就像差分法一样,最后把盈亏加到朔望的小余数上,得到最终的小余数。如果加多了超过了上限,或者减少了不足下限,就按照日法调整日期。

然后算合朔月食的加时。用12乘以最终的小余数,如果满了日法就得到一个时辰,用“子”来表示,算到外面去,就是加时所在的时辰。如果还有余数,就乘以4,如果满了日法,就分别表示为“少”、“半”、“太”。如果还有余数,就乘以3,如果满了日法,就表示为“强”。“强”和“少”合起来是“少强”,“强”和“半”合起来是“半强”,“强”和“太”合起来是“太强”。如果得到两个余数,那就是“少弱”,和“太”合起来就是“一辰弱”,用之前的时辰来命名。

接下来算月亮离开太阳的度数。把历法周期剩下的部分乘以损益率,按照正常的算法来算,然后用盈亏的数值来确定最终的数值。把最终的数值除以12得到度数,如果除不尽,就用三等分,分别表示为“少”、“半”、“太”。如果还有余数,一个余数表示为“强”,两个余数表示为“少弱”,这就是月亮离开太阳的度数。阳历在外表,阴历在里面。(表格略)

最后算昏明中星的位置。把度数加上夜半时太阳所在的位置,就能得到中星的度数。

最后是推算五星的位置。木星的率是15753820;火星的率是3084196;土星的率是14933540;金星的率是2361400;水星的率是4576240。推算五星的位置:把度数用各自的率去除,然后用余数减去率,剩下的部分按照纪法来计算,得到入岁日,如果除不尽就是日余。用天正朔来命名,算到外面去,就是星合日。

这段文字讲的是古代天文计算方法,看起来很复杂,咱们一句一句掰扯掰扯。

首先,“求星合度:以入岁日及余从天正朔日积度及余,满纪法从度,满三百六十余度分则去之,命以虚一,算外,星合所在度也。” 这段说的是怎么算星星和太阳会合的度数。 简单来说,就是把一些日子和度数加起来,超过360度就减去360度,剩下的就是星星和太阳会合时的度数。 那些“入岁日”、“天正朔日”之类的,都是古代历法里的专业术语,咱们不用太纠结。

接下来,“求星见日术:以伏日及余,加星合日及余,余满纪法从日,命如前,见日也。” 这是算星星什么时候能看到的。 把“伏日”(星星隐没的日子)和“星合日”(星星和太阳会合的日子)加起来,超过一定天数就减去,剩下的就是星星出现的日子。

“求星见度术:以伏度及余,加星合度及余,余满纪法从度,入虚去度分,命如前,星见度也。” 这句和上一句差不多,只是算的是星星出现时的度数,方法也类似,加起来超过360度就减去。

“行五星法:以小分法除度余,所得为行分,不尽为小分,及日加所行分满法从度,留者因前,逆则减之,伏不尽度。从行入虚,去行分六,小分百四十七;逆行出虚,则加之。” 这是算星星每天运行多少度的方法。 用一种叫“小分法”的算法算出星星每天运行的度数,然后根据星星是顺行还是逆行,进行加减运算,算出星星的运行情况。 这“小分法”,“虚”这些,都是古代天文计算中的专业术语。 这段话最复杂,理解起来需要一些天文知识背景。

接下来是具体例子,先说木星: “木:初与日合,伏,十六日,余万七千八百三十二,行二度,度余三万七千五百四,晨见东方。” 木星刚开始和太阳会合,然后隐没16天,之后每天运行2度,在东方出现。后面的“(行十九度十一分。)”括号里的内容是计算结果。

“从,日行四分,百一十二日,(行十九度十一分。)留二十八日。逆,日行三分,八十六日,(退十一度五分。)又留二十八日。从,日行四分,百一十二日,夕伏西方。日度余如初。一终,三百九十八日,日余三万五千六百六十四,行三十三度,度余二万五千二百一十五。” 这段描述了木星的运行周期,包括顺行、逆行和停留的时间,以及最终运行的度数。 “从”指顺行,“逆”指逆行,“留”指停留。

最后是火星的例子:“火:初与日合,伏,七十二日,日余六百八,行五十五度,度余二万八千八百六十五,晨见东方。” 火星和太阳会合后隐没72天,然后每天运行55度,在东方出现。

“从,疾,日行十七分,九十二日,(行六十八度。)小迟,日行十四分,九十二日,(行五十六度。)大迟,日行九分,九十二日,(行三十六度。)留十日。逆,日行六分,六十四日,(退十六度十六分。)又留十日。从,迟,日行九分,九十二日。小疾,日行十四分,九十二日。大疾,日行十七分,九十二日,夕伏西方,日度余如初。一终,七百八十日,日余千二百一十六,行四百一十四度,度余三万二百五十八。除一周,定行四十九度,度余万九千八百九。” 这段描述了火星的运行,包括不同速度的顺行和逆行,以及最终运行的度数。 “疾”、“迟”指的是火星运行速度的快慢。

总而言之,这段文字描述的是古代天文学家如何计算行星的运行规律,充满了专业术语和复杂的计算方法。 对于我们现代人来说,理解起来确实很有难度。

一开始,土星和太阳在一起,然后土星就“伏”起来了,过了十七天,太阳走了1378度,土星走了19333度,早上就能在东方看到它了。土星运行的方向是顺行的,每天走2分,走了84天(一共走了7度7分)。然后它停了33天。 接着它逆行,每天走1分,走了110天(退了4度18分)。之后又停了33天。然后它又顺行,每天走2分,走了84天,傍晚的时候在西方“伏”起来,太阳走的度数和一开始一样。这样一轮下来,一共是378天,太阳走了2756度,土星走了31798度,也就是12度。

接下来说金星。金星一开始也和太阳在一起,然后“伏”起来,过了39天,太阳走了38126度,金星也走了38126度,傍晚就能在西方看到它了。然后金星开始运动,速度很快,每天走1度5分,走了92天(一共走了112度)。然后速度稍微慢了一些,每天走1度4分,走了92天(一共走了108度)。再然后速度更慢了,每天只走17分,走了45天(一共走了33度6分)。之后停了9天。 之后速度又慢了,每天走16分(退了6度6分),傍晚在西方“伏”起来。它“伏”了5天,退了5度,然后又和太阳在一起了。再过5天,又退了5度,早上就能在东方看到它了。然后它逆行,每天走16分,走了9天。停了9天。之后,它开始运动,速度慢,每天走17分,走了45天。速度稍微快了一些,每天走1度4分,走了92天。速度又快了一些,每天走1度5分,走了92天,早上在东方“伏”起来,太阳走的度数和一开始一样。这样一轮下来,一共是583天,太阳走了36761度,金星的运行情况也和之前一样。减去一整圈,它实际走了218度,剩余26312度。一次会合周期是291天,太阳走了38126度,金星的运行情况也一样。

话说这水星啊,一开始跟太阳靠得很近,然后就“伏”起来了,藏了十四天。这十四天里,太阳走了三万七千一百十五度,水星也走了三万七千一百十五度,傍晚的时候才能在西边看到它。接下来,水星跑得快了,一天走一度六分,走了二十三天。(一共走了二十九度。)然后速度慢下来了,一天只走二十分,走了八天。(一共走了六度二十二分。)又停了两天。速度继续慢,一天只走十一分,两天下来,(倒退了二十二分)。傍晚的时候,它又藏到西边去了。它在西边“伏”了八天,倒退了八度,然后又跟太阳靠到一起了。再过八天,又倒退了八度,早上就能在东边看到它了。然后它又加速了,一天走十一分,走了两天。又停了两天。之后速度慢下来,一天走二十分,走了八天。最后速度又变快,一天走一度六分,走了二十三天,早上它又藏到东边去了,太阳走的度数跟一开始一样。这样一整个周期,一共一百一十五天,太阳走了三万四千七百三十九度,水星也这么走。而水星和太阳靠到一起,一共是五十七天,太阳走了三万七千一百十五度,水星也是一样。

上元那年,是甲子年,天正甲子年的朔日半夜冬至,日月五星,都聚集在虚宿的起始位置,阴阳的快慢变化,也从那天开始。

当时皇上让大臣们好好讨论一下这事儿,可那会儿懂天文历法的人不多,大家也没什么不同的意见。只有太子太傅戴法兴站出来说了自己的看法,他说:

话说这天文历法的事儿,可不是随便就能搞明白的。要是不深入研究,仔细推敲天象的变化,哪能推翻旧的,建立新的历法呢?我仔细研究了案冲的意见,发现好多地方都对不上号,所以斗胆提几点自己的看法,边看边讨论。

案冲他新推算的历法,说每年冬至的位置都略微有点偏差。我琢磨着,这冬至和夏至,南北回归线的位置,太阳的运行规律都是固定的,而星宿的位置也不该改变啊。古时候的历法,冬至都在建星(星宿名)。战国时期乱哄哄的,史官们记录也不靠谱,到了汉朝初期,对节气的观察也乱七八糟的。后来有人观察到冬至在南斗二十二度附近,元和年间用的历法,和古历法也差不多。到了景初年间,也没发现什么错误。《尚书》上说:“日短星昴,以正仲冬。” 只要按照月亮运行规律确定四季,那么中宿(星宿名)就总在卫阳(星宿名)附近,羲和(古代传说中的太阳神和月亮神)用来确定时间的办法,就是取其万年不变的规律。

案冲却说唐代的冬至在现在星宿的左边五十多度,于是就乱加度数,把天上的星宿位置都弄乱了。他定的历法,差不多差了半个周期,也就是说,四十五年后,就要差一度。你看《诗经》里说“七月流火”,那是夏至在建申(星宿名)的时候。“定之方中”,又是小雪的节气。如果冬至的位置真的偏差这么大,那么《诗经》里说的“七月流火”时节,日影应该长一尺五寸,楚国的宫殿里日晷漏刻也应该显示五十三刻,这简直是胡说八道!孔子说过:“我听说过,火隐没之后,冬眠的动物才都出来活动。现在火还西流呢,这司历官算错了!” 就像案冲算错的一样,那星宿的位置就不固定了,封地的大小也不准了。

地名、官职名称这些,古今肯定不一样,古代的文书典籍,不同时代说法也不一样。尧帝时代说的开、闭(指某星宿的出没),现在就变成了建、除(指某星宿的出没)。现在说的寿星,就是周朝说的鹑尾(星宿名),现在的东壁(星宿名),已经不是以前的玄武(星宿名)了,轸星(星宿名)现在属于苍龙(星宿名)了。这简直是胡乱改动天象,太离谱了!

话说这冲之啊,又改动了历法,一共改了391年,其中有144个闰年。我法兴就说了:这每天的时间长短不一样,所以斗柄指向也就不一样,古人制定历法,有个标准,一年十九年,通常有七个闰年,时间有时多有时少,这个是不能随便改的。冲之他减闰年,把多余的天数减掉,结果呢,139年后,二月就少一天;7429年后,就少一个闰年了。每天的时间少了,就提前了;闰年少了,事情就乱套了。依我看啊,时间是用来安排事情的,事情是用来养活人的,这可是老百姓的大事,历法得放在第一位,冲之这简单的想法,怎么能乱改呢?

冲之他又说,上元日(一年开始的日子)的度数是从虚宿开始算的,说虚宿在北方的正中央。我法兴又说了:冲之你既说冬至点在移动,又说虚宿在正北,这抓影子不抓东西,太糊涂了!为什么这么说呢?天上星星的位置,不是靠太阳来确定的吗?地上人们辨别方向,不都是靠斗柄吗?就算冬至点在虚宿,那黄道就更远了,东北方就该是黄钟宫(音律),室宿、壁宿就该是玄枵位(音律),虚宿怎么可能还在正北方呢?要是冬至点一直在变,而星宿位置不变,斗柄指向变了,音律却不变,那七政(日月五星)的位置就不能用仪器校准了,时间也不能用摄提法来计算了,五行在哪儿,六律在哪儿,就都说不清楚了!

冲之他又说,上元年(纪元)是甲子年。我法兴又说了:定个纪元,各有各的道理,有的根据图谶,有的根据当时的形势。冲之说,“各家说法不一,很难确定”。以前黄帝在辛卯年即位,日月运行正常;颛顼在乙卯年即位,四季分明;景初年是壬辰年,没有日蚀;元嘉年是庚辰年,没有月蚀,这些难道不是顺应天意的吗!冲之你非要选甲子年,这简直是强求天意啊!

咱们先说说这历法的事儿。冲之这老兄,还规定日月和五星的运行,快慢交会,都得以上元为起始点。我说啊,这交会的起始点,才能推算日食发生的时间,至于运行的快慢,可不是一般人能算出来的。以前贾逵大概摸到点门道,刘洪还写了本书专门讲这个。但具体到运行的疏密程度,谁也说不准。再说,五星的位置,有时远有时近,比如岁星在轸宿的时候,看起来比其他七星还亮,那些算命先生都能根据这个推算出现在的时间,那过去和将来的时间,当然也能推算出来了。《景初历》和《元嘉历》之所以要记录起始点的误差,甚至还分别设置了后元,就是为了方便实用,而不是故意弄复杂。冲之他非要改历法,还弄出这么一套说法,我觉得这是治历法的大毛病!

再说日月的运行。我说啊,太阳有八条运行轨道,每条轨道都自成一体,月亮只有一条轨道,加起来一共九条,左边运行快,右边运行慢,快慢相差一倍半,但最终都得回到同一个点,所以太阳的运行周期应该相同。冲之算出来的周天运行和会合周期相差九千四十,阴阳周期大约七十九周多一点,快慢相差还不到一圈。这就应该把多余的减掉,不足的补上。

冲之听了我的话,反驳说:……

我年轻的时候,就对数学和天文很感兴趣,广泛学习古代和现代的典籍,深入研究那些深奥的学问。从唐代的文献到夏朝的典籍,我都仔细研究过,从周朝到汉朝的天文历法,也都认真考证过。我绞尽脑汁地思考,仔细辨别其中的细微之处。比如,以前关于圆周率的计算有错误,张衡虽然提到了,却也没有改正;汉代的度量衡铭文,刘歆篡改了数据,这些都是古代算术方面的重大错误。《乾象历》和《景初历》中关于日月运行的计算,并不是因为观测不精确,而是因为计算方法出现了错误,这是历法方面的大失误。郑玄、阚泽、王蕃、刘徽等人,虽然也精通天文历法,但他们的著作中也常常出现错误。我以前利用业余时间,纠正了这些错误,我的论证清晰明了,很容易理解,我这样做并不是为了否定古人,而是为了追求真理。

我根据何承天历法进行改进,比如二至点的位置、闰月的设置、五星的运行轨迹等等,这些方面都存在偏差,需要调整。我从根本上进行改进,去芜存菁,使历法更加完善,结果却遭到他们的批评,真是令人惋惜啊!法兴提出了六点质疑,但这些质疑都没有触及到历法计算的根本问题。我一一列举如下:第一,关于岁差,我根据史书考证,纠正了以前的错误,法兴却引用《诗经》和《尚书》来反驳我,但他引用的内容都是错误的。第二,我修正了日晷的计算方法,法兴无法反驳,只是说“恐怕不是浅显的考虑,无法推敲”。第三,关于方程的推算,我没有采用他的方法,他认为我这是方法不对,故意贬低我。第四,关于历法的起始年份,我的方法清晰明了,他却认为我的方法有漏洞。第五,我的历法中七曜的起始年份都是一致的,他却说“这不是普通人能计算出来的”。第六,关于阴阳历的迟疾问题,法兴没有理解,误认为阴阳历的日数应该相同。总而言之,他的质疑要么是引用错误的观点来攻击我,要么就是毫无理由地否定我,他根本没有拿出有理有据的论证来反驳我,只是凭着主观臆断来否定我的成果。我在这里一一回应他的质疑,并用事实来证明我的观点的正确性。希望您能明察秋毫,了解事情的真相。

法兴说:“你看啊,冬至和夏至,南北回归线,太阳运行的度数是固定的,而星宿的位置却不会改变。所以古代的冬至历法,都把建星作为参考点。”

冲之接着说:周朝和汉朝之间,那些搞天文历法的专家们,很多都失业了,就开始搞一些旁门左道,编造各种各样的天文图籍,内容非常复杂。有的为了抬高帝王的地位,就编造一些关于帝王的预言;有的为了让自己的说法显得神乎其神,就假借圣贤的名义。所以那些预言大多都是假的,桓谭就认为这些都是伪造的;古代的历法又杂乱无章,杜预也怀疑它们的准确性。你看《五纪论》里说,黄帝的历法就有四种说法,颛顼、夏、周朝的历法也有两种不同的说法,各种说法互相矛盾,让人眼花缭乱,谁又能知道哪个是对的呢?这就是古代历法值得怀疑的第一个理由。

夏朝的历法认为七曜(日月五星)是西行的,这跟其他的历法完全不一样,刘向认为这是后人编造的,这是古代历法值得怀疑的第二个理由。殷朝历法把一年定为940日,但是《乾凿度》却说殷朝历法把一年定为81日。如果《易纬》的说法没错,那么殷朝的历法就一定是错的,这是古代历法值得怀疑的第三个理由。《颛顼历》的纪元是乙卯年,但是《命历序》却说这个历法的纪元是甲寅年,这是古代历法值得怀疑的第四个理由。《春秋》里记载的日食和朔日(农历每月初一)一共26次,它所依据的历法,不是周朝的就是鲁国的。用周朝的历法来核对,发现朔日有25次不对;用鲁国的历法来核对,又发现有13次不对。两种历法都对不上,那就一定有一个是假的,这是古代历法值得怀疑的第五个理由。

古代的六种历法,都和《四分历》差不多,《四分历》这种方法,时间一长就会出现偏差。用日食来检验,每过三百年,就会差一天。用古代的历法来推算现在,偏差大的,朔日会比实际时间晚两天多。以此推断,古代的历法,大多产生在汉初和周末时期,不可能更早。而且反过来校对《春秋》,朔日反而比实际时间早,这就证明它不是三代以前的东西,这是古代历法值得怀疑的第六个理由。你看《律历志》记载,西汉时期的冬至,太阳位于斗宿和牛宿之间,度数在建星附近,两者位置相近。如果不是帝王亲自制定,那么仪器或漏刻肯定有缺陷,怎么可能精确到毫厘不差呢?所以,仅仅依靠建星的说法,还不足以证明古代历法的准确性。

法兴说:“战国时期天文历法发展混乱,史官记载也错漏百出,一直到汉初,节气推算都不准确。后来人们发现,南斗二十二度的位置跟古历法相符,元和年间的历法沿用了这个方法,跟古历法是一致的。到了景初年间,历法仍然没有错误。” 冲之反驳说:古代的历法说法不一,很多细节我都没听说过。秦朝用的乙卯历,肯定在当时有效,所以他的说法还是有根据的。汉武帝时期重新制定历法,考订细致,仪器精密,这些都记载在史书里,天文观测和度量也符合道理。现在那些反对的人,只是见识浅薄,胡乱否定,一会儿说这个不对,一会儿说那个不对,根本不是正经讨论,还颠倒是非,胡乱指责,只抓住一点不放,不如兼顾今古之长。景初历法实际上在五星的位置上出了错,现在已经偏差很多了,甚至连日出日落的时间都算错了。它只是粗略地计算朔望,根本不去仔细核对,所以日晷和漏刻的时间,都直接沿用元和历法,二分二至的景象也毫无改进,日行度数稍有偏差,当然会出错啦。

法兴说:“《尚书》上说‘日短星昴,以正仲冬’。直接用月亮推算四季,那么二十八宿中的中宿(指二十八宿中的某一宿)总是落在卫阳(二十八宿之一)附近,羲和制定历法,就是取其历久不变的道理。”冲之反驳说: 《尚书》用这四颗星在黄昏时分出现来确定冬至,这是以人君南面而坐的角度来说的。而且南北的正方向很容易确定,天体运行的规律,中天是天球的极点。古代学者对这个解释都一致认同,而法兴却认为《尚书》说的四颗星都在卫阳附近,在巳位(二十八宿之一),这方向就错了,不是最初出现的位置,他曲解经文,为了坚持自己的观点,违背经义,强词夺理,这实在太过分了!把午位说成巳位,午位上又不是没有星星。一定要以中宿为准,其他的星宿难道就不能用来确定节气了吗?如果说要用中宿来概括七列星宿,那么觜宿和参宿还没出现,就不能说了;虽然昴星出现了,但应该说它隐藏着;奎宿和娄宿已经出现了,也不能说它们隐藏着……这样一来,说法就说不通了,那还有什么依据呢?如果说中宿的推算方法不对,那就应该认真考证经书的含义,直接说“星昴”,不要说是卫阳,卫阳本身也没有明显的含义,这说法从何而来呢?如果道理站不住脚,那就只能用愚昧的言辞来强辩了。曾泉和桑野(指古代两位天文历法专家)都是明显的例子,冬至的推算到底在什么时候?我反复推敲,实在感到叹息不已。

法兴说:“制定历法的地方,跟实际情况差不多差了半个星次,所以每四十五年九月就要调整一次。” 冲(指李淳风)说:法兴说的《元和历》每天的度数,我承认是对的,但他只参考古代历法中建星的位置,现在考证一下,我算的冬至也在这个星宿,斗宿二十二度完全没有明显的证据,却空口无凭地说我的历法偏差了半个星次,这让我实在想不通!而且,年数的剩余是十一个月,他却说是九月,计算的数字总是出入很大,都跟这个差不多。

月亮圆的时候发生月食,一定是在日、月相对的时候,用这个来检验太阳的位置,星宿的度数就能分辨出来。我想用这个方法来检验历法的疏密程度。查阅太史的记录,元嘉十三年十二月十六日半夜月食,月亮在鬼宿四度,根据日、月相对计算,太阳应该在牛宿六度。可是法兴说:“在女宿七度”。又,十四年五月十五日半夜月食,月亮在斗宿二十六度,根据日、月相对计算,太阳应该在井宿三十度,可是法兴说:“太阳在柳宿二度”。再有,二十八年八月十五日半夜月食,月亮在奎宿十一度,根据日、月相对计算,太阳应该在角宿二度;可是法兴说:“太阳在角宿十二度”。还有大明三年九月十五日半夜月食,月亮在胃宿的末尾,根据日、月相对计算,太阳应该在氐宿十二度;可是法兴说:“太阳在心宿二度”。这四次月食,都跟我算的一模一样,一点儿不差,而法兴的计算,却一下子差了十度,跟日、月相对的位置相差很远,这很明显就能看出来。所以我知道天象的数值会逐渐发生偏差,那就应该按照这个规律来制定历法,事实证明我的历法是准确的,怎么能相信古代的而怀疑现在的呢?

法兴这老兄说:“你看《诗经》里写‘七月流火’,这指的是夏天正值建申(农历七月)的时候。‘定之方中’,又是小雪节气。要是冬至的计算有误差,那豳国的‘流火’,日影就会长出一尺五寸,楚宫的日晷,一天就只有五十三刻了,这也太离谱了!”

冲之反驳道:“我仔细看了他的说法,三点都错啦!《诗经》里说‘流火’,大概只是概括地提一下火星西移到某个位置,说明天气开始变冷了。‘流’这个字,可不是说火星刚开始移动的意思。按照他的说法,冬至那天太阳的位置在斗宿二十二度,那火星应该在大暑之前就西移了,怎么可能在建申(农历七月)附近呢?他这是自己跟自己较劲,根本不是在纠正错误。《夏小正》里写着‘五月昏,大火中’,这难道是在卫阳(古代地名)吗?他还说我制定的历法,导致楚宫的日晷在九月初就显示出这种结果。可是你看《诗经》的传注和笺注,都说‘定之方中’指的是房屋正对黄昏时的正南方,形成四方对称的格局。那么,正南中天,应该在室宿的八度。我仔细推算过,元年立冬后第四天,太阳在黄昏时分位于正南中天,这正是十月初,根本不是寒露节气。法兴的意思,大概是搞错了,把周朝的历法当成了尧帝时代的历法,两者相差五十度,所以才犯了这么大的错误。说什么小雪节气,他自己信口开河,根本没有明确的文献依据!”

法兴说:“孔子说过:‘我听说过,火隐伏之后,蛰伏的动物就都出来了。’现在火还往西流,司历官弄错了。就像冲你说的那样,如果星宿的位置错了,那么星象的次序就不固定了,八卦的方位就错乱了,名称的正误,古今必然不同,典章制度的声音,时代之间也不相通。尧时说的开、闭,现在变成了建、除;现在的寿星,是周朝的鹑尾星。现在东壁星,已经不是玄武了,轸宿星却归属苍龙,这简直是诬蔑天象,违背经典,才会造成如今的混乱局面。”

冲回答说:“我认为北极星居于中央,而众星环绕着它运行,星宿的形状不同,而阴阳属性却有区别。所以,各种星宿都各就各位,水火二星就有它们的位置;东西二星相对而列,那么东西方向就可以确定。不能仅仅根据太阳所在的位置来确定星宿的名称。怎么证明呢?阳爻初九,气始于正北,玄武七星,虚宿当于子位。如果用浑天仪来辨别方位,以太阳为主,冬至时太阳所在的位置,应该在玄枵;但是现在南极星却在东方,违背了天体运行的规律,失去了中心的位置,这道理怎么解释呢?如果南北方向以冬夏二至来确定,那么卯酉方向就以生杀来确定名称,怎么能说春季的星宿运行规律是正确的,秋季的星宿运行规律是仁义的区域呢?名称与道理相悖,像这样反常的情况啊!因此,我认为天以列宿来划分方位,而不是根据四季来划分;星宿环绕运行,太阳并不总是沿着固定的轨道运行。至于说某些星宿隐伏不见,史书上常常用它来验证时间的,那是因为历法计算很难精确,而天象的观察却比较容易,所以各代都根据当时的实际情况,制定简便易行的历法。这就像夏朝的礼仪没有通行到商朝,商朝的《濩》乐章也没有沿袭周朝的《韶》乐章一样,诚然天人之间之道也是有差异的,所以各种技艺的兴起,是随着时代而变化的。”

“月份的名称,应该是根据天气的根本规律来确定的,名称应该符合实际情况,而不是仅仅根据斗柄所指的方向来确定的。最近考证汉朝的历法,已经差了半个星次,仔细核对斗柄的方位,它的效用在哪里呢?或许有些说法违背了经典的训诫,却依此建立理论,将天文历法弄得虚虚实实,伪造的辞藻夹杂其中吗?星宿的次序和名称,应该符合星宿本身的运行规律。即使二至点的位置有所移动,但是星宿的位置并没有改变,难道说龙星和火星交换了位置,金星和水星混乱了次序,名称与实际情况相悖的批评,难道没有仔细研究吗?比如,东壁星不是玄武,轸宿属于苍龙,观察星象来推算时间,实际效果是很明显的。《元嘉历法》中,寿星最初也在翼宿的范围,参校晋朝的注释,验证的例子很多。天象的移动,一百多年了,如果论辩者能够充分发挥他们的才能,证明南极星不是在冬至点,北极星不在冲的位置,那么这种说法才能成立。如果让太阳的位置不断变化,那么就会经常出现错误,这正是我所编制的历法的有力证明,不是反对者应该提出的问题。我所坚持的,一定是根据经史典籍,远考唐朝的典章制度,近征汉朝的书籍,谶纬和零散的记载,我不敢采用,我认为这是遵循经典的论证。月蚀可以检验日度,事实证明很明显,史书的注释详细论述,文章保存在宫中,这也是符合天象规律的说法。《尧典》中记载的四星,都在卫阳,现在日度与元和年间的计算结果相差很远,诬蔑违背天象的指责,正是指的这件事。”

法兴说:“日子长短不一,所以日晷的长度也不一样,古人制定历法,设立了标准长度,十九年有七个闰月,日晷有时长有时短,这都是无法改变的。你削减闰月破坏了历法,调整余数,那么一百三十九年二月,在四分历法的计算中,就会少一天;七千四百二十九年,就会少一个闰月。日子少了就提前,闰月少了事情就乱套。我听说,制定历法是为了做事,做事是为了养活百姓,这是百姓的根本,也是历法首先要考虑的。我担心你的想法过于简单,不能随意更改。”

冲之说:根据《后汉书》和《乾象说》,《四分历法》虽然章法和日晷的设置始于元和年间,但日晷的各种数值是在嘉平三年确定的。《四分志》记载,立冬正午的日影长一丈,立春正午的日影长九尺六寸。我们知道冬至时太阳到达南极点,日晷最长,二气(立冬、立春)与冬至的日数相同,那么正午的日影长度应该相等,但实际上立冬比立春长四寸,这是历法与实际观测结果不符的证据。二气正午的日影长度每天相差九分半左右,变化比较均匀,几乎没有盈亏。按照这个比例计算,二气各推迟二日十二刻,那么立冬的日影会更短,立春的日影会更长,两者相差两寸,二气正午的日影长度都变成九尺八寸了。这才是立冬、立春的正确日期。以此类推,历法中冬至的日期也应该推迟二日十二刻。嘉平三年,当时的历法规定丁丑日为冬至,日影最长的时间在正午。减去二日十二刻,那么实际冬至应该是乙亥日,日影最长的时间在午夜之后三十八刻。我又亲自用测景仪器观测,精确到分寸,铜表坚固,不受潮湿影响,日影清晰可见,细微之处都看得清清楚楚。根据大明五年十月十日,日影长一丈七寸七分半;十一月二十五日,日影长一丈八寸一分;二十六日,日影长一丈七寸五分多。取中间值,那么冬至应该在十一月三日。为了确定冬至的具体时间,我将前后两日的日影长度相减,就得到了每天日影长度的变化率。用这个方法计算,前两日相减,再乘以一百刻,然后除以变化率,得到冬至日影最长的时间在午夜之后三十一刻,比《元嘉历》推算的日期晚一天,这才是正确的日期。我检查了全年的数据,结果都一致,不同年份的数据也符合规律。我根据这些观测结果,修正了历法。现在用我的历法推算,时间与实际观测结果一致,我认为非常精确,可以永久使用。

考察古代历法,都与《四分历法》类似,《四分历法》使用时间长了就会出现误差,每三百年就会差一天。所以汉朝四百年,计算节气的时候经常出现偏差。魏朝以来,就改革了这种方法,没有人反对,因为它确实符合天象。十九年七闰月的历法,误差更大,它沿用了旧的方法,没有参考经典文献。而你却说这种方法自古以来就如此,不能更改。如果说古代的方法虽然有误差,但应该一直沿用,那么你的说法就站不住脚了,你还要在今天使用《四分历法》,这合理吗?我无法理解。你要是说我改革的历法有错误,那你也没有拿出证据来反驳我。 《元嘉历》的算法,减少了两个闰月,只是粗略地沿用了旧的算法,所以前后不一致。至于舍弃盈余求得精确值,并没有违反道理。按照你的意思,比例不能改变,那么分秒就不能增减,沿用天象制定历法,反而会出错。节气早晚,应该遵循《景初历》,二至相差三天,也没人觉得不对,你却说我的历法有误,知道日影短了会提前,却不知道增加月份会造成更大的混乱。你没有亲眼看到天象,怎么能了解历法的重要性和百姓的根本利益呢?这显然不是凭空决定的。你一开始说你精通日晷的变化,可以修改旧历法,又说日晷的长短不能作为标准,前后矛盾,不知道你依据是什么。如果推算天象没有标准,那么天文计算就失去了依据,我不知道历法是根据什么制定的。《春秋》以来一千多年,用月食来检验朔日,从未出现过错误,这证明了太阳运行是恒定的。而且我多年观测日影,仔细观察细微之处,以前检验的结果都非常吻合,孟子说,一千年的日影长度,坐着就能知道,这话是真的。日晷长短不一,你没有证据,空口批评,我并不害怕。

法兴说:“冲之你一边说冬至点因为岁差而移动,一边又说虚宿是北极的正中,这简直是舍本逐末,抓错了重点,根本没说到点子上。为什么这么说呢?天上只要有太阳,就不会一片漆黑,我们在地上用斗星来辨别方向。就算冬至真的在虚宿,那黄道就会离北极更远,东北方向就该是黄钟宫的方位,室宿和壁宿就应该对应玄枵的方位了,虚宿怎么可能还是北极的正中呢?如果冬至点不断移动,而星宿的位置却不变,北极星的位置也变了,但是音律却还是原来的音律,那七政(日月五星)的运行规律就不符合天球仪的运行规律了,历法也就不再是根据摄提历来制定了,那五行和六律又该放在哪里呢?”

冲之回答说:“你说的这些问题,我之前上报的奏疏里已经详细解释过了。冬至点移动,虚宿当然就不是北极的正中了。你说的那些繁琐的论证,自己给自己制造了很多混乱,这些都是你理解上的错误,可不是我违反了既定的制度啊。至于‘七政致齐’,实际上指的是天球仪的运行规律,郑玄和王肃的解释已经很清楚了,虽然有其他不同的说法,但那都不是真正的含义。”

法兴说:“制定历法和纪年,各有各的依据,有的根据图谶上的记载,有的效仿当时的实际情况。冲之说‘各个部落互相争论,难以确定正确的日期’。可是,黄帝在辛卯年,日月运行正常;颛顼在乙卯年,四季运行规律;景初年(壬辰年),日夜交替没有偏差;元嘉年(庚辰年),朔日没有错位,这些难道不是顺应天意吗?冲之坚持使用甲子纪年,可以说是为了符合天意。”

冲之反驳道:历法应该注重实际效用,不能各有各的标准,根据图谶的推测和牵强附会的解释,都不是我们应该采用的方法。即使当时看起来很灵验,也不能长久适用,这也是我所不安的地方。元朝的纪年法名称新颖,方法明确合理。我不太清楚辛卯年说的依据是什么,古代那些奇奇怪怪的说法,很多事情都记载在前朝的史书里了,沉溺于名称而忽略了实际情况,这大概不是考证古代典籍的正确方法吧。如果历法只适用于一时,那就没有长久使用的道理了。元朝的纪年法是根据实际情况制定的,并没有固定的年份。现在用实际情况来证明它的正确性。夏朝、殷朝以前的史料大多散失了,《春秋》和汉朝的史书都记载了日食,对正朔的记载也详细准确,很容易查证。我用我的历法去核对,数字都完全吻合,确实没有虚设之处,遵循规律推算,千年不变,即使是遥远的事情也能推算出来。我仔细查阅了以前的历法,错误很多,有的朔日差三天,有的节气差七天,没有听说过哪种历法能一直沿用到现在的。元朝是在乙丑年开始的,以前有人说这不是正确的纪年,现在到了甲子年,大家又怀疑是勉强凑合的。历史上从来就没有无名之年的说法,那么推算以前的年份,又该如何着手呢?历法纪年的制定,几乎要停止了。制定历法必然会有不符合实际的地方,我希望听到明确的证据,来验证事情的真实性。

法兴说:“算出日月交会的根本规律,就能预测日食,而日食发生的快慢,可不是一般人能算出来的。以前贾逵大概算出了点儿差别,刘洪粗略地写出了方法,但至于日月交会疏密变化的具体数字,谁也没能彻底搞明白。再说,五大行星的位置,有时会忽远忽近,比如岁星在轸宿的时候,看起来比其他七个星宿快,术士们根据这个规律推算到现在,那么过去和未来的情况,也就能推断出来了。《景初历》开头就记录了这个差值,《元嘉历》又分别设置了后元,这些都是为了在实际应用中简化计算,并不是故意弄复杂。”

法兴接着说:“冲之,你改历法,违背了天理,又强加自己的想法,我认为这是治历的大错特错!”冲之反驳道:“日食发生的快慢,不是什么神怪之说,是有规律可循,有数字可推算的。刘洪和贾逵都能做到,只要不断改进,就能算得更精确了。你说‘五大行星的位置,有时会忽远忽近’,‘岁星在轸宿的时候,看起来比其他七个星宿快’,意思是说每年会移动一个星宿。你看岁星的运行,每年都超过一个星宿,绕天一周七次,就会超过一个位置。用这种方法推算,历法有十种方法,都符合当时的实际情况,史书上记载的,天象也验证了这一点。所以,岁星运行的盈亏变化,是有规律可循的,并非随意乱动,突然超过某个位置。如果仔细研究盈亏变化,怎么会只有快而没有慢呢?那些研究天象的人,必须分析推算,考证过去,验证现在,用实际观测结果,参照经史记载。那些弯弯绕绕的解释,大多是虚假的,甘石两家的书,互相矛盾。现在就因为一句话里的一个字有错误,就固执己见,歪曲真理,我真是看不惯这种做法!”

冲之继续说道:“从现在开始计算,很多方法都能得到相同的结果,但是《景初历》的两个差值,承接天文的‘后元’,实际上因为奇偶不协调,所以计算结果总是不一样,所以才要设置前元和后元,以便简化计算。提出建议,发表意见,不应该标新立异,而是应该让实际情况通过文字体现出来,把道理讲清楚就行了。追溯到很久以前,各种计算方法都从头开始,这本来就是历法研究的规律,没有道理被批评;但是批评的人认为这是错误,而且是最大的错误。那么,《元嘉历》设置元,虽然七个比率排列混乱,但仍然符合甲子纪年,气朔都完整,这就算是个小错误吧。难道一定要虚构一个上元,假定历法的开始,年份与名称不符,日期与星宿不符,闰月、朔日、分至、月球运行速度等等,都不能完整吗?这才是完美的历法吗?强加自己的想法,说是自己觉得舒服;违背天理,却看不到有什么错误,这真是让人无法理解!”

法兴说:“太阳每天运行八个单位,合起来算作一个周期;月亮运行一个周期,分成九个单位。太阳和月亮运行速度不一样,有时快有时慢,相差一倍半,最终还是会回到同一个点,所以太阳和月亮运行的次数应该相同。” 他还说,太阳和月亮的会合周期是940天,阴阳交替大约79个周期,快慢相差不到一个周期,所以应该根据盈亏的情况调整,有时要减少,有时要增加。

冲之说:“法兴的这些说法很离谱,没有根据,不过我们可以查证一下。他用太阳每天八个单位比作月亮九个单位,意思是月亮的运行轨道应该固定不变,周而复始地绕着天运行,不应该有变化。那么,太阳和月亮交汇的地方应该固定,不可能一会儿在斗宿,一会儿在牛宿,都在同一个度数上。它们到南北极点的距离也应该相等,不可能时远时近。如果日月运行并非如此,那么‘太阳每天运行八个单位’的说法就是错误的了?‘左交右疾’这句话是什么意思呢?是‘交’和‘疾’相对立,还是说舍弃‘交’就只剩下‘疾’?如果舍弃‘交’就只剩下‘疾’,那么‘交’就应该出现在历法中七日和二十一日的地方。而交汇和日食发生的时候,应该正好是盈亏的极点,怎么可能还要增减呢?如果‘交’和‘疾’是相对立的,那么在交汇的时候,应该正好是快慢变化的起点,怎么可能在历法中时深时浅,相差一倍半呢?新旧历法都一样,反复强调这句话,究竟想说明什么呢?我看过很多历书,古今都有,从来没有听说过这种说法,它既违背了古代的标准,又违反了天文学的规律,我实在不明白。

迟疾和阴阳并不互相影响,所以交汇的时间是不固定的,这是古人早就总结出来的规律,前人也详细解释过。可是法兴却说太阳和月亮运行的次数应该相同。我认为他根本没理解这个意思,所以才犯了这么大的错误,根本不需要多加辩论。既然他说盈亏的计算不准确,为什么又不详细说明具体的数字呢?可能是他自己也觉得自己的说法有问题,所以才含糊其辞吧?他又用总数来计算,应该互相推算各自的比例。法兴列出的两个数字都是错的,可能是把八十当成七十九了,他说要根据盈亏的情况调整,有时要减少,有时要增加,这就是他说的意思。总而言之,他的说法不仅说明我的历法不够精确,还说何承天的方法更不准确。如果我的历法应该被废弃,那么何承天的方法就更不能用了。如果法兴的观点是正确的,那么就应该改革。日影的长度和太阳的位置,以及其他新的说法,一定有很精妙的解释吧?

话说当时,法兴这个家伙特别受世祖皇帝的宠爱,全国上下都怕他,他要是提什么意见,大家全都跟着附和。只有中书舍人巢尚之,他看穿了法兴的把戏,坚持认为应该用老办法。皇上呢,他喜欢标新立异,又爱慕古代的东西,想用法兴的新方法,那会儿是大明八年。所以打算等到第二年改元的时候,顺便也改历法。结果新历法还没来得及实行,皇上就驾崩了。

唉,真是计划赶不上变化啊!法兴得宠,朝中上下都怕他,谁敢反对他的意见?只有巢尚之敢于坚持己见,反对法兴的新法,可见他是个正直的人。皇上呢,也是想图个新鲜,想在历史上留下点什么,可惜啊,人算不如天算。