杨伟上书说:“我查阅了各种典籍,仔细研究了历法,历法用年份来记述农业生产,用月份来记述各种事情,这套方法的起源,非常久远了。从少昊时代开始,玄鸟就负责分定季节;颛顼、帝喾时期,重黎负责天文;到了唐尧、虞舜时期,羲和负责掌管日历,夏商周三代都沿用了这种制度,历代都有专门负责日历的官员。日历官员制定好历法后,就颁布给各诸侯国,诸侯国收到后,再颁布到全国各地。夏朝的时候,羲和沉迷酒色,荒废了历法,导致日期混乱,这在《尚书》的《胤征》篇里就有记载。从这些例子可以看出,历代都很重视根据农时安排事务。

到了周朝衰弱,战国时期列国争霸的时候,祭祀用的羊都不送了,登台祭祀的礼仪也不遵守了,闰月和月份的顺序搞不清楚,正月初一的时间也记不清楚了,大火星座还在西方运行,人们还奇怪为什么冬眠的虫子没藏起来。那时候,天子不按时令行事,负责历法的官员也不记录日期;诸侯不尽职,也不按时确定月份,根本不关心农时,荒废了农业生产。孔子在《春秋》里记载这些事情,通过褒贬来纠正错误,如果历法出现闰月错误,他就会批评并记录下来;如果诸侯登台颁布月份,他就说这是合乎礼仪的。

从那时起,一直到秦汉时期,人们又恢复了以孟冬(十一月)为岁首,把闰月放在九月之后,节气和月份的安排错乱,时间和月份经常出现错误。而且,日食发生的时间也不在朔日(农历初一),这些错误延续了几百年都没有改正。直到汉武帝元封七年,人们才意识到这些错误,于是改进了历法,请有才能的人重新制定了《太初历》,校正了朔日和闰月的误差,精确计算了星宿的度数,用来推算星宿的疏密,并把寅月(正月)定为岁首,黄钟月(十一月)定为历法的起始月份。但是,《太初历》的斗分(二十八宿的度数)太多,后来就变得越来越疏忽了。到了唐元和二年,又开始使用《四分历》,一直用到今天。我们观察日食,发现它总是发生在月末,这说明斗分太多,导致历法先密后疏,所以不能使用。

因此,我利用闲暇时间,研究天文历法,查阅以前的典籍,用日食和朔日来验证,仔细推敲,制定了一部新的历法,它既不提前也不延后,是古今历法中的最佳选择。就像古代唐尧时期那样,能够准确掌握日历和时令,使各种技艺都得到发展,百姓都过上了好日子。我希望当今国家的典礼和各种制度,都能符合古代的规范,完善齐全,所以才要改正朔日,修改历法,以大吕月(十月)为岁首,以建子月(十一月)为历法的起始月份。我认为,古代帝喾时期,历法叫做《颛顼历》;黄帝时期,历法叫做《黄帝历》;汉武帝时期,改革了历法,改元为太初,所以历法叫做《太初历》。现在改元为景初,所以应该叫做《景初历》。我制定的《景初历》,方法简便,使用方便,管理起来省力,学习起来容易理解。即使是那些精通天文历法的人,像研桑、隶首、重黎、羲和那样,用尽各种方法来推算天文历法,也达不到我的这种精确程度。所以,历代的历法都比较粗略,不够精确,从黄帝开始,就一直在不断地改革。

请提供需要翻译的内容。我没有看到你需要我翻译的内容。请您提供文本,我会尽力将其逐句翻译成现代汉语口语,并按照您的要求分段。

从壬辰年元朝建立开始,到景初元年丁巳年,一共过去了4446年,这是算出来的。

元朝的历法,是从天正建子黄钟月作为起始月份算起的,元朝的第一年,是甲子年的第一天,也就是冬至的半夜。

元朝的历法规定,一万等于1580。纪元法,一千年等于1843。 一个纪元有22795个月。一个章是19年,有235个月,7个闰月。总共是134630天。一天等于4559日法,余数是9670。周天数是673150。一个纪元里有12个气法,每个气法是12。没分是67315,没法是967。月周是24638,通法是47,会通是791110。朔望合数是67315,入交限数是722795,通周是125621,周日日余是2528,周虚是231,斗分是455。

接下来是甲子纪元的第一年,第一天是朔日,月亮在太阳的轨道上。交会差率是412919,迟疾差率是103947。

甲戌纪元第二年,第一天是朔日,月亮在太阳的轨道上。交会差率是516529,迟疾差率是73767。

甲申纪元第三年,第一天是朔日,月亮在太阳的轨道上。交会差率是621139,迟疾差率是43587。

甲午纪元第四年,第一天是朔日,月亮在太阳的轨道上。交会差率是723749,迟疾差率是13470。

甲辰纪元第五年,第一天是朔日,月亮在太阳的轨道上。交会差率是37249,迟疾差率是108848。

甲寅纪元第六年,第一天是朔日,月亮在太阳的轨道上。交会差率是14859,迟疾差率是78668。

这段文字记录的是古代历法计算的结果,里面充满了各种天文数字,具体含义需要专业的历法知识才能理解。 简单来说,这段文字描述了不同纪元年份的历法参数,包括一些重要的天文数据,例如交会差率和迟疾差率,这些数据可能用于预测日月食或其他天文现象。

这段文字描述的是古代的一种天文历法计算方法,非常专业,我们来一句一句地用现代口语解释一下。

第一段:计算“纪差”的方法,说的是如果两个历法纪元之间相差十万三千六百一十天,要想知道这个差值是怎么来的,就先算出一个纪元有多少个月,然后用这个月数乘以一个常数(“通数”),再减去一个固定的值(“会通”),剩下的就是纪差。把这个纪差加到上一个纪元的起始日期,就能得到下一个纪元的起始日期。如果加完后没超过“会通”,那么这一年的正月初一正好是朔日(农历初一);如果超过了“会通”,那么正月初一就过了朔日。超过“会通”的部分,正月初一就比朔日晚;没超过“会通”的部分,正月初一就比朔日早。

第二段:这部分讲另一种纪差的计算方法,这次纪差是三万一百八十天。计算方法类似,先算出一个纪元有多少个月,然后用这个月数乘以一个常数(“通数”),再减去一个周期值(“通周”),剩下的数再从“通周”里减去,结果就是纪差。把这个纪差从上一个纪元的起始日期减去,就能得到下一个纪元的起始日期。如果减不完,就加上“通周”。 后面还讲了如何计算“次元纪差率”和“次纪”,方法和前面类似,都是通过减法运算来得到结果。

第三段:这段介绍如何计算“推朔积月术”,也就是计算从壬辰元(一个纪元的起始年份)到某一年有多少个月。方法是:先算出从壬辰元到目标年份的总年份数,然后用一个固定的数值(“纪法”)去除,商数表示经过了多少个纪元,余数表示是第几个纪元内的年份。再用一个常数(“章月”)乘以年份数,结果就是总月数,不足一个月的部分就是闰余。如果闰余大于等于十二,这一年就有闰月。闰月是根据没有中气来确定的。

第四段:这段讲如何计算“推朔术”,也就是推算某一年的正月初一。方法是:先用一个常数(“通数”)乘以前面算出的总月数(积月),得到朔积分;再用一个常数(“日法”)去除,得到积日,不足一天的部分是小余。用六十去除积日,剩下的就是大余。用大余和纪元数,就可以确定某一年正月初一的日期。

第五段:这段讲解如何计算下一个月的初一。方法是:在大余的基础上加上29,再加上小余(2419),如果小余超过了“日法”,就从大余里扣除,再按照前面方法确定下一个月的初一。如果小余超过2140,这个月就是大月。

第六段:这段讲如何推算农历的弦望(上弦月、望月、下弦月)。方法是:在朔日的大余上加7,小余上加1744,以及一个小分。如果小分超过2,就从小余里扣除;如果小余超过“日法”,就从大余里扣除;大余超过60就减去60,剩下的结果就可以确定上弦月的日期。以此类推,可以计算出望日、下弦月和下个月的朔日。如果发生月食,计算方法会根据月食发生时月亮的位置做调整。

第七段:最后一段介绍如何推算二十四节气,以冬至为例。方法是:先算出从某一个纪元到目标年份的年份数,用一个常数乘以年份数,结果超过一个纪元长度的部分是大余,不足的部分是小余。大余超过60就减去60,剩下的结果和纪元数就可以确定冬至的日期。

首先,咱们得算一下“次气”。加十五,减四百二,再除以十一,看看余数是多少。这个余数如果够大,就从减去的四百二里扣;如果不够大,就从加的十五里扣。算完之后,记下日子,这就是“次气日”。

接下来是推算闰月的方法:用闰余减去章岁,剩下的数乘以岁中,如果结果够一个章,那就闰一个月;如果只够一半,也闰一个月。记住,咱们从十一月开始算,算出来的就是闰月。闰月有时候会提前,有时候会推后,主要看有没有中气来决定。

大雪在十一月,限数是1242到1248;冬至也在十一月,限数是1254到1245;小寒在十二月,限数是1235到1224;大寒也在十二月,限数是1213到1192;立春在正月,限数是1172到1147;雨水在正月,限数是1122到993;惊蛰在二月,限数是1065到1036;春分在二月,限数是1008到979;清明在三月,限数是951到925;谷雨在三月,限数是900到879;立夏在四月,限数是857到840;小满在四月,限数是823到812;芒种在五月,限数是800到799;夏至在五月,限数是798到801;小暑在六月,限数是805到815;大暑在六月,限数是825到842;立秋在七月,限数是859到883;处暑在七月,限数是907到935;白露在八月,限数是962到992;秋分在八月,限数是1021到1051;寒露在九月,限数是1080到1107;霜降在九月,限数是1133到1157;立冬在十月,限数是1181到1198;小雪在十月,限数是1215到1229。

这段文字描述的是古代历法计算闰月和节气的方法,以及每个节气的限数范围。 这些数字代表着某种天文计算的结果,用于确定节气和闰月的具体日期。 限数的范围可能与当时的观测误差或计算方法有关。 总而言之,这是一种相当复杂的天文历法计算过程。

首先,咱们来说说怎么算“没日”,就是一年中冬至之后多少天。 冬至那天,如果还有零头天数,就加一天,然后用一个特定的数(没分)乘以它,再用另一个特定的数(没法)除它。 除得尽的部分就是大余,除不尽的部分就是小余。 如果大余超过六十,就减去六十,剩下的就是用来记日子的大余。这个大余就是去年冬至后过了多少天。

要算下一个“没日”,就在大余里加上69,小余里加上592。 如果小余超过了没法,就再加一到里面,大余也相应地变化,方法和上面一样。 小余用完了,就表示“灭”了,也就是一个周期结束了。

接下来,咱们看看怎么算五行用事日,就是木、火、金、水哪一天开始当家做主。立春、立夏、立秋、立冬这四天,分别是木、火、金、水开始当家做主的那天。 从这四天的大余里减去18,小余里减去483,小分里减去6。 剩下的数用来记日子,算完之后,这四天之前的日子,就是土开始当家做主的那天。 如果大余、小余、小分不够减,就按照一定的规则加减。

然后是算卦用事日。 用冬至那天的大余,再把小余乘以6,就是《坎卦》开始用事的那天。 接着,在小余里加上191,如果超过了某个数(元法),就从大余里减去,以此类推,就是《中孚》开始用事的那天。 要算下一个卦,就在大余里加6,小余里加967,以此类推。 四个主要的卦,都是根据中间那一天算出来的,方法是把小余乘以6。

咱们再来说说怎么算日度,也就是太阳在天空中的位置。 用一个数(纪法)乘以从朔日(农历初一)算起的日数,如果超过一圈(周天),就减去一圈,剩下的再用纪法除,商就是度,余数就是分。 从牛宿(二十八宿之一)的第五个星开始数,用宿次除以度数,如果不够一宿,那就是天正十一月朔日半夜太阳所在的位置。

要算下一天,度数加一,分不变。 如果分不够,就要减一度。

接下来是月度,也就是月亮在天空中的位置。 用月亮一个周期(月周)的日数乘以从朔日算起的日数,超过一圈就减去一圈,剩下的用纪法除,商就是度,余数就是分。 方法和算日度一样,就能算出天正十一月朔日半夜月亮的位置。

要算下一个月,小月就加22度和860分,大月就加1天、13度和679分;如果分超过了纪法,就加一度。 冬天下旬,月亮在张宿、心宿附近。

最后,咱们说说怎么算合朔度,就是太阳和月亮同时在一个位置的度数。 用一个数(章岁)乘以朔日的小余,如果超过一个特定的数(通法),就减去,剩下的就是大分和小分。 用大分减去朔日半夜太阳的度数和分数,如果分超过了纪法,就从度数里减去,以此类推,就能算出天正十一月合朔时太阳和月亮在一起的度数。

要算下一个月,就加29度、977大分和42小分。 如果小分超过了通法,就从大分里减去;如果大分超过了纪法,就从度数里减去。 最后,还要用斗宿来调整分数,就能算出下一个月合朔时太阳和月亮在一起的度数。

首先,咱们来看看怎么算出太阳和月亮的位置。

要算上弦日的位置,先把朔日(农历初一)的度数加上七个加合朔度、七百五大分、十分、一分,如果微分满了二,就从十分里减去;十分满了,就从大分里减去;大分满了,就从度数里减去。按照这个方法算下去,得到的度数就是上弦日的位置。再继续加,就能算出望日(农历十五)的位置,下弦日和下个月的朔日的位置也能算出来。

要算上弦月的位置,先把朔日的度数加上九十八个加合朔度、一千二百七十九大分、三十四分。然后,按照刚才的方法继续算下去,就能得到上弦月的位置。同样,继续加,就能算出望月、下弦月和下个月朔日的位置。

接下来,咱们看看怎么算日月昏明(白天和黑夜的长度)。

计算日月的明暗度,要用纪法算日,用月周算月,再乘以最近节气的夜间漏刻数,然后除以二百,得到明分(白天长度)。用纪法减去日数,用月周减去月数,剩下的就是昏分(黑夜长度)。分别把明分和昏分加上夜半(子时),按照同样的方法计算,就能得到度数。

然后,我们看看怎么推算合朔(农历初一)、交会(日月交汇)和月蚀(月食)的时间。

计算合朔、交会和月蚀,先把所计算年份的朔日积分记下来,然后加上该年份下交会差率的数值,再减去会通数(一个周期),剩下的就是当年十一月合朔时距离交点的度分。不断加上会通数,减去会通数,就能算出以后每个月合朔时距离交点的度分。把朔望合数分别加上每个月合朔时距离交点的度分,减去会通数,剩下的就是每个月望日(农历十五)距离交点的度分。如果朔望距离交点的度分在朔望合数之下,又在交限数之上,那么朔日就会发生交会(日月交汇),望日就会发生月蚀。

最后,我们看看怎么判断月球在日道表里(月球运行轨迹)。

计算月球在日道表里,先把所计算年份的朔日积分记下来,然后加上该年份下交会差率的数值,再减去两倍的会通数。如果剩下的数小于会通数,那么如果纪首在表,天正合朔月就在表;如果纪首在里,天正合朔月就在里。如果剩下的数大于等于会通数,减去会通数后,表满就在里,里满就在表。

要算下个月的情况,就加上会通数,减去会通数,如果之前是里满,现在就在表;如果之前是表满,现在就在里。如果先发生交会后发生月蚀,那么朔日在表,望日就在表;朔日在里,望日就在里。如果先发生月蚀后发生交会,那么蚀月的朔日在里,望日就在表;朔日在表,望日就在里。如果交会和月蚀的发生时间在朔望合数以下,那么先交会后月蚀;如果在交限数以上,那么先月蚀后交会。如果先交会后月蚀的时间更接近限数,就要提前观察;如果先月蚀后交会的时间更接近限数,就要延后观察。

要算交点距离,如果先交后会,就把交点距离除以每日的度数,结果就是交点距离。如果先会后交,就用交点距离减去会合距离,然后除以每日的度数,结果就是交点距离之前的距离。其他的都是度数。交点距离超过十五度,即使交合也不会发生日食;十度以下就会发生日食;十度以上,日食很小,只是光线稍微有点影响而已。日食的大小,用十五度作为除数来计算。

计算日食开始的方位,如果月亮在外道,先交后会,日食从西南角开始;先会后交,日食从东南角开始。如果月亮在内道,先交后会,日食从西北角开始;先会后交,日食从东北角开始。日食的大小,同上,用十五度作为除数来计算。如果正好在交合点,那就是日全食。月食发生在日月的冲的时候,亏角的方向与上面说的相反。

下面是月亮运行速度的快慢、盈亏率、盈亏积分和月亮每日运行的度数:

第一天,月亮运行十四度(十四分),盈亏率增加二十六,盈亏积分是二百八十。

第二天,月亮运行十四度(十一分),盈亏率增加二十三,盈亏积分是一十一万八千五百三十四,每日运行度数是二百七十七。

第三天,月亮运行十四度(八分),盈亏率增加二十,盈亏积分是二十二万三千三百九十一,每日运行度数是二百七十四。

第四天,月亮运行十四度(五分),盈亏率增加十七,盈亏积分是三十一万四千五百七十一,每日运行度数是二百七十一。

第五天,月亮运行十四度(一分),盈亏率增加十三,盈亏积分是三十九万二千七百一十四,每日运行度数是二百六十七。

第六天,月亮运行十三度(十四分),盈亏率增加七,盈亏积分是四十五万一千三百四十一,每日运行度数是二百六十一。

第七天,月亮运行十三度(七分),盈亏率减少,盈亏积分是四十八万三千二百五十四,每日运行度数是二百五十四。

第八天,月亮运行十三度(一分),盈亏率减少六,盈亏积分是四十八万三千二百五十四,每日运行度数是二百四十八。

第九天,月亮运行十二度(十六分),盈亏率减少十,盈亏积分是四十五万五千九百,每日运行度数是二百四十四。

第十天,月亮运行十二度(十三分),盈亏率减少十三,盈亏积分是四十一万零三百一十,每日运行度数是二百四十一。

第十一天,月亮运行十二度(十一分),盈亏率减少十五,盈亏积分是三十五万一千四百一十三,每日运行度数是二百三十九。

第十二天,月亮运行十二度(八分),盈亏率减少十八,盈亏积分是二十八万二千六百五十八,每日运行度数是二百三十六。

十三号那天,十二度(五分),减少了二十一,盈积分是二十万零五百九十六,一共是二百三十三。十四号,十二度(三分),减少了二十三,盈积分是十万四千八百五十七,一共是二百三十一。十五号,十二度(五分),增加了二十一,缩初,一共是二百三十三。

十六号,十二度(七分),增加了十九,缩积分是九万五千七百三十九,一共是二百三十五。十七号,十二度(九分),增加了十七,缩积分是十八万二千三百三十六,一共是二百三十七。十八号,十二度(十二分),增加了十四,缩积分是二十五万九千八百六十三,一共是二百四十。十九号,十二度(十五分),增加了十一,缩积分是三十二万三千六百八十九,一共是二百四十三。二十号,十二度(十八分),增加了八,缩积分是三十七万三千八百三十八,一共是二百四十六。

二十一号,十三度(三分),增加了四,缩积分是四十一万零三百一十一,一共是二百五十。二十二号,十三度(七分),减少了,缩积分是四十二万八千五百四十六,一共是二百五十四。二十三号,十三度(十二分),减少了五,缩积分是四十二万八千五百四十六,一共是二百五十九。二十四号,十三度(十八分),减少了十一,缩积分是四十万五千七百五十一,一共是二百六十五。二十五号,十四度(五分),减少了十七,缩积分是三十五万五千六百零二,一共是二百七十一。

二十六号,十四度(十一分),减少了二十三,缩积分是二十七万八千零九十九,一共是二百七十七。二十七号,十四度(十二分),减少了二十四,缩积分是十七万三千二百四十二,一共是二百七十八。周日,十四度(十三分,还有小数六百二十六分),减少了二十五(也带小数六百二十六),缩积分是六万三千八百二十六,一共是二百七十九(也带小数六百二十六)。

这段文字描述的是古代天文历法推算方法,非常专业,我们一句一句地用现代口语解释一下。

第一段:

“推合朔交会月蚀入迟疾历术曰:置所入纪朔积分,以所入纪下迟疾差率之数加之,以通周去之,余满日法得一日,不尽为日余,命日算外,则所求年天正十一月合朔入历日也。” 这段话的意思是:计算朔日(农历初一)和日月交会以及月食发生的时间,要考虑月球运行的快慢。具体方法是:先算出该月朔日对应的积分,然后根据月球运行的快慢调整这个积分,再用周天(360度)去除,余数够一天的就算一天,不够就记下余数,这个余数就是“日余”。这样算出来的,就是我们想求的那一年十一月朔日进入历法的日期。

第二段:

“求次月,加一日,日余四千四百五十。求望,加十四日,日余三千四百八十九。日余满日法成日,日满二十七去之。又除余如周日余,日余不足除者,减一日,加周虚。” 算下一个月,就在上个月的基础上加一天,日余是4450;算望日(农历十五),就在上个月的基础上加十四天,日余是3489。如果日余够一天的,就加一天;如果日余超过27天,就减去27天;如果日余不够除,就减一天,加上一个“周虚”(这部分需要结合当时的历法知识理解)。

第三段:

“推合朔交会月蚀定大小余:以入历日余乘所入历损益率,以损益盈缩积分,为定积分。以章岁减所入历月行分,余以除之,所得以盈减缩加本小余。加之满日法者,交会加时在后日;减之不足者,交会加时在前日。月蚀者,随定大小余为日加时。入历在周日者,以周日日余乘缩积分,为定积分。以损率乘入历日余,又以周日日余乘之,以周日日度小分并之,以损定积分,余为后定积分。以章岁减周日月行分,余以周日日余乘之,以周日度小分并之,以除后定积分,所得以加本小余,如上法。” 这段话在计算日月交会和月食发生的时间时,需要考虑更精细的因素,比如月球运行的细微变化。用复杂的公式和方法计算“大小余”,并根据计算结果调整交会和月食的时间。 具体计算过程非常复杂,这里无法用简单的语言解释清楚,需要深入了解古代历法知识才能理解。

第四段:

“推加时:以十二乘定小余,满日法得一辰,数从子起,算外,则朔望加时所在辰也。有余不尽者四之,如日法而一为少,二为半,三为太。又有余者三之,如日法而一为强,半法以上排成之,不满半法废弃之。以强并少为少强,并半为半强,并太为太强。得二强者为少弱,以之并少为半弱,以之并半为太弱,以之并太为一辰弱。以所在辰命之,则各得其少、太、半及强,弱也。其月蚀望在中节前后四日以还者,视限数;在中节前后五日以上者,视间限。定小余如间限、限数以下者,以算上为日。” 这段话是计算朔望和月食发生的确切时间,以“辰”为单位,并考虑更精细的时间调整,用“少、半、太、强、弱”等术语来表示时间上的微小差异。 月食发生在农历十五前后几天,则根据不同的情况采用不同的计算方法。

最后两段是列举了一些星宿和度数,应该是与天文观测相关的辅助数据,这里不做口语化翻译,直接引用原文:

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

北方九十八度(分四百五十五)

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

西方八十度

这串数字,井三十三、鬼四、柳十五、星七、张十八、翼十八、轸十七,指的是二十八宿在南方的度数,一共一百十二度。然后是角十二、亢九、氐十五、房五、心五、尾十八、箕十一,这是东方七十五度的度数。 (后面的度数表就省略了)。

接下来说的是二十四节气的计算方法。书上说,用某种方法计算,可以得出冬至在十一月。然后根据这个结果,依次推算出其他节气的月份。 至于星星的位置,就以太阳所在的位置为准。 先算出每年二十四节气的小余数,然后乘以四,如果结果是整数,就说明是“少”;如果不是整数,再乘以三,就说明是“强”。 根据这个结果,就能确定每个节气的昏明时刻和星宿的位置了。

五星指的是:木星叫岁星,火星叫荧惑星,土星叫填星,金星叫太白星,水星叫辰星。这五颗星的运行速度不一,有时快有时慢,有时前进有时后退。 从天地开辟以来,阴阳分开之后,日月五星都聚集在星纪(星宿名)。从星纪出发,一起运行在天空中,速度快慢、前进后退,互相影响。 如果星和太阳同时出现在同一个星宿,就叫做“合”。从一次“合”到下一次“合”之间的时间,就叫做“终”。 然后用“终”的日期和一年的日期进行计算,得出“合终岁数”和“合终合数”。 这两个数确定之后,其他的计算方法就出来了。用“章岁”乘以“合数”,得到“合月法”;用“纪法”乘以“合数”,得到“日度法”;用“章月”乘以“岁数”,得到“合月分”;用“合月法”除以“合月分”,得到“合月数”,余数是“月余”。 用“通数”乘以“合月数”,再除以“日度法”,得到“大余”。用六十减去“大余”,余数是“星合朔大余”,“大余”的余数是“朔小余”。 用“通数”乘以“月余”,加上“合月法”乘以“朔小余”,再除以“日度法”乘以“合月法”,得到“星合入月日数”。 余数用“通法”约分,得到“入月日余”。用“日度法”减去“朔小余”,余数是“朔虚分”。用“历斗分”乘以“合数”,得到“星度斗分”。 木星、火星、土星,用“合数”减去“岁数”,余数乘以周天,再除以“日度法”,得到行星的度数,余数是度数的余数。金星、水星,用周天乘以“岁数”,再除以“日度法”,得到行星的度数,余数是度数的余数。

木星的“合终岁数”是一千二百五十五,“合终合数”是一千一百四十九,“合月法”是二万一千八百三十一,“日度法”是二百一十一万七千六百七,“合月数”是十三,“月余”是一万一千一百二十二,“朔大余”是二十三,“朔小余”是四千九十三,“入月日”是十五。

一个月多,算出来是1995664。

朔虚分是466。

斗分是522795。

行星的度数是33。

剩下的度数是1472869。

接下来是火星的计算:合终岁数是5105;合终合数是2388;合月法是45372;日度法是441184;合月数是26;月余是23000;朔大余是47;朔小余是3627;入月日是13;日余是3585230;朔虚分是932;斗分是186540;行星度数是50;剩下的度数是1412150。

火星的计算结果出来了,合终岁数是3943;合终合数是3890;合月法是72371;日度法是719987;合月数是12;月余是58153;朔大余是54;朔小余是1674;入月日是24;日余是675364;朔虚分是2885;斗分是173395;行星度数是12;剩下的度数是5962256。

然后是金星的计算:合终岁数是1970;合终合数是2385;合月法是45315;日度法是4395555;合月数是9;月余是43310;朔大余是25;朔小余是3535;入月日是27;日余是194990;朔虚分是1224;斗分是185175;行星度数是292;剩下的度数是194990。

最后是水星的计算:合终岁数是1870;合终合数是11789;合月法是223991。

公元某年,咱们先算算日子。日度法是21727127,合月数是1,月余是215459,朔大余是29,朔小余是2419,入月日是28,日余是23442261,朔虚分是2140,斗分是5363995,行星度是57,度余是23443361。

接下来算五星的运行情况。方法是:从壬辰年开始,把你要算的那一年数乘以一个叫“合终合数”的数字。如果结果正好是合终岁数的整数倍,就叫“积合”,如果不是整数倍,余数就叫“合余”。用“合终合数”减去“合余”,结果如果是1,就说明星体在往前推算的这一年合;如果是2,就说明星体在往前推算的第二年合;如果结果不是1或2,那就说明星体在这一年合。剩下的余数再减去“合终合数”,得到的就是“度分”。金星和水星的“积合”如果是偶数,就是晨合;如果是奇数,就是夕合。

然后算五星合月。方法是:把月数和月余分别乘以“积合”,如果结果是合月法的整数倍,就是“积月”,如果不是整数倍,余数就是“月余”。用纪月除以“积月”,商数就是所入纪,余数就是入纪月。再用章闰乘以入纪月,如果结果是章月的整数倍,就说明是闰月,然后从入纪月中减去,剩下的就是入岁月。从天正开始算,算出来的就是星合月的时间。如果在闰月交接的时候,就用朔来调整。

接下来算合月朔。方法是:用通数乘以入纪月,如果结果是日法的整数倍,就是“积日”,如果不是整数倍,余数就是“小余”。用60除以“积日”,余数就是“大余”,从所入纪开始算,算出来的就是星合朔日。

然后算入月日。方法是:用通数乘以月余,再用合月法乘以朔小余,把这两个结果加起来,再用通法约分。如果结果是日度法的整数倍,那就是星合入月日;如果不是整数倍,余数就是日余。从朔开始算,算出来的就是入月日。

再算星合度。方法是:用周天乘以度分,如果结果是日度法的整数倍,那就是度,如果不是整数倍,余数就是余数。从牛前五度开始算,算出来的就是星所合的度数。

最后算后合月。方法是:把月数加到入岁月里,把余数加到月余里。如果结果是合月法的整数倍,就得到一个月。如果这个月不满一年,就在这一年;如果满了,就减去,如果有闰月就记上,剩下的就是后一年;如果再满,就在后两年。金星和水星,晨合加一年就变成夕合,夕合加一年就变成晨合。

最后算后合朔。方法是:把朔大余、朔小余分别加上合朔月的大余、小余。如果月余超过一个月,就再加一个大余29,小余2419。如果小余是日法的整数倍,就从大余里减去,方法和前面一样。

这段文字讲的是古代天文计算,咱们一句一句地捋捋。

第一段说的是怎么算下一个朔日(农历初一)。 先算出这个月已经过了多少天,然后加上剩余的天数,再用某种方法(“余满日度法”)得到一个结果。如果这个结果比朔日少一点,就减一天;如果比朔日多很多(超过2419),就减去29天;如果多得不多,就减去30天。剩下的天数就是下一个朔日距离现在的天数,然后就可以确定下一个朔日了。 计算下一个会合度数的方法,跟前面算朔日的方法类似。

第二段讲的是木星的运行规律。 木星早上和太阳一起出现,然后潜伏起来。 它顺行(逆时针)的时候,16天运行997832分,也就是2°1795238分(这里分指的是更小的角度单位)。 然后木星出现在东方,在太阳之后。 顺行速度有时快有时慢,快的时候,57天走11度;慢的时候,57天走9度然后停下来。 它会停27天再继续运行。 逆行(顺时针)的时候,一天走1/7度,84天退12度后停下来。 27天后它又慢速顺行,57天走9度,然后加速,57天走11度,这时它在太阳前面,晚上出现在西方,然后在16天后又和太阳会合。 一个周期下来,总共是398天1995664分,木星运行了33度1472869分。

第三段讲的是火星的运行规律。 火星早上和太阳一起出现,然后潜伏起来。 它顺行72天,运行1792615分,也就是56度1249345分。 然后在东方出现,在太阳之后。 顺行速度也分快慢,快的时候,184天走112度;慢的时候,92天走48度然后停下来。 它会停11天再继续运行。 逆行的时候,62天退17度然后停下来。 11天后它又慢速顺行,92天走48度,然后加速,184天走112度,这时它在太阳前面,晚上出现在西方,然后在72天后又和太阳会合。 一个周期下来,总共是780天3585230分,火星运行了415度2498690分。

早上土星和太阳在一起,然后土星就“潜伏”起来了。十九天,也就是三百八十四万七千六百七十五分半,土星运行两度六百四十九万一千一百二十一分半,然后早上就能在东方看到它,这时它在太阳后面。顺行的时候,一百七十二分之十三,八十六天走六度半然后停止。停三十二日半后它又开始转动。逆行的时候,每天走十七分之一,一百零二天后退六度然后又停止。停三十二日半后又开始顺行,每天走十三分之一,八十六天走六度半,这时它在太阳前面,晚上在西方“潜伏”。顺行十九天,也就是三百八十四万七千六百七十五分半,土星运行两度六百四十九万一千一百二十一分半,然后又和太阳在一起了。一个周期结束,一共是三百七十八天六十七万五千三百六十四分,土星运行了十二度五百九十六万二千二百五十六分。

早上金星和太阳在一起,然后金星就“潜伏”了。六天它后退四度,然后早上就能在东方看到它,这时它在太阳后面,并且逆行。慢的时候,每天走五分之三,十天后退六度。停七天后它又开始转动。顺行的时候,慢的时候,每天走四十五分之三十三,四十五天走三十三度然后顺行。快的时候,每天走一度九十一分之十四,九十一天走一百五度然后顺行。更快的时候,每天走一度九十一分之二十一,九十一天走一百一十二度,这时它在太阳后面,早上在东方“潜伏”。顺行四十二天,也就是十九万四千九百九十分,金星运行五十二度十九万四千九百九十分,然后又和太阳在一起了。一次会合,一共是二百九十二天十九万四千九百九十分,金星运行的度数也是这么多。

晚上金星和太阳在一起,然后金星就“潜伏”了。顺行四十二天,也就是十九万四千九百九十分,金星运行五十二度十九万四千九百九十分,然后晚上就能在西方看到它,这时它在太阳前面。顺行的时候,快的时候,每天走一度九十一分之二十一,九十一天走一百一十二度然后继续顺行。慢的时候,每天走一度十四分之一,九十一天走一百五度然后顺行。更慢的时候,每天走四十五分之三十三,四十五天走三十三度然后停止。停七天后它又开始转动。逆行的时候,每天走五分之三,十天后退六度,这时它在太阳前面,晚上在西方“潜伏”。逆行六天后退四度,然后又和太阳在一起了。两次会合一个周期结束,一共是五百八十四天三十八万九千九百八十分,金星运行的度数也是这么多。

早上,水星和太阳会在同一个方向出现。水星会先隐藏起来,十一天后会往东边移动七度,然后在太阳的后面出现。如果水星逆行,速度很快,一天能退一度,然后停下来。一天后又会转向。如果水星顺行,速度慢,一天走七分之七度,八天走七度,然后停下来。如果速度快,一天走一度的十八分之四,十八天走二十二度,出现在太阳的后面,早上在东方出现。如果顺行,十八天走三万六千三百六十一分之三万六千三百六十一度,然后和太阳在同一个方向出现。水星和太阳一次会合,需要五十七天三万六千三百六十一分,水星的运行就是这样。

晚上,水星和太阳会在同一个方向出现。水星会先隐藏起来,十八天走三万六千三百六十一分之三万六千三百六十一度,然后在傍晚出现在西方,在太阳前面。如果顺行,速度很快,一天走一度的十八分之四,十八天走二十二度,然后继续顺行。如果速度慢,一天走七分之七度,八天走七度,然后停下来。一天后又会转向。如果逆行,一天退一度,出现在太阳前面,晚上在西方隐藏起来。如果逆行,十一天退七度,然后和太阳在同一个方向出现。水星和太阳两次会合,总共需要一百一十五天一万八千九百六十一万三千九百五十分,水星的运行就是这样。

计算水星和太阳会合的时候,要把水星和太阳的度数余数加起来。如果余数满了日度法,就从头开始计算,像之前那样计算,就能得到水星出现的时间和度数余数。用水星运行的分母乘以见度分,如果等于日度法,就得到一个整数;如果除不尽,超过一半也算一个整数,然后加上运行的分数,分数满了分母就得到一度。逆行和顺行的分母不一样,要用当时的运行分母乘以原来的分数,如果等于原来的分母,就是当时的运行分数。停下来的情况要参考之前的计算结果,逆行就要减去。如果隐藏的度数不够,就除以斗分,用运行的分母作为比例。分数会有增减,前后相互制约。

汉武帝的侍中平原刘智,用斗历修改历法,推算《四分法》,三百年会少一天,用一百五十作为度数的法则,三十七作为斗分。推算甲子为上元,到泰始十年,岁在甲午,过了九万七千四百一十一岁,上元天正甲子朔夜半冬至,日月五星开始于星纪,得到了元首的起点。他用一些夸大的说法来装饰,命名为《正历》。

当阳侯杜预撰写了《春秋长历》,书中说:

太阳一天走一度,月亮一天走十三度十九分之七,大概是这样。负责天文历法的官员要根据太阳和月亮运行的快慢来确定每月初一和月末,以及要不要闰月。闰月没有中气(二十四节气中的一个),而北斗星的指向也和其它月份不一样。 把这些因素综合考虑,就能保证四季八节准确无误,最终才能制定出准确的历法,这其中的奥妙真是太深了! 只要能掌握其中的精髓,就能符合天道运行规律,所有事情都能井然有序,不会出错。《春秋传》里就说了:“闰月是为了校正时间,时间是为了安排事情。”

但是,阴阳运行的规律是变化的,总会有细微的偏差,这些偏差不断累积,最终就会和历法产生冲突。所以孔子和丘明常常在讨论每月初一和闰月的问题,他们是在纠正历法中的错误,并以此来阐明历法的规律。

刘子骏编撰了《三正历》来研究《春秋》,书中记载的日食有甲乙两种记录,一共三十四次,但是《三正历》只推算出一次第食,和其他历法相比,误差最大。而且,它还规定六千多年增加一天,这样算下来,年数越久,误差越大,这方法根本行不通。

从古至今,很多研究《春秋》的人都犯了错误,有的自己发明一套方法,有的用黄帝时代以来的各种历法来推算经文中记载的朔日(每月初一),结果都对不上。日食发生在朔日,这是天象的验证,《经传》也记载了这些朔日发生的日食,这说明《经传》的记载符合天象,而刘向、贾逵等儒者的说法,却认为日食发生在每月二或三日,这违背了圣人的明确记载。他们的错误在于死守一种理论,不肯根据天象来调整历法。

我以前写过一篇《历论》,仔细研究了历法的原理。主要意思是说:天体运行永不停息,日月星辰各自沿着轨道运行,都是运动的物体。运动的物体不可能完全一致,虽然运行的度数大体上可以确定和限制,累积天数成月,累积月份成岁,新旧交替的过程中,不可避免地会有细微的差别,这是自然规律。所以春秋时期,有的年份日食频繁,有的年份好几年都没有日食,规律并不统一,而计算却遵循恒定的数值,所以历法总会有先后之差。一开始的误差很小,几乎察觉不到,但积累多了,就会导致朔望日出现偏差,这时就不得不修改历法来适应它。《尚书》说“钦若昊天,历象日月星辰”,《易经》说“治历明时”,意思是说应该顺应天象来制定历法,而不是为了验证天象而制定历法。以此推论,春秋二百多年间,历法的修订和变革很多。即使古代的算法失传了,我们也能从经传中找到蛛丝马迹,推算出大致的数值,经传记载的历法偏差,也得到了验证。学者们理应仔细研究经传中记载的月日、日食,来考证朔望日,推算时间;但实际上并非如此,大家各执己见,推算春秋时代的情况,这就好比自己量了自己的脚,却要削别人的脚一样。

我写完《历论》之后,到了咸宁年间,精通计算的李修和卜显,根据我的理论创立了一种历法,叫做《乾度历》,上报朝廷。这种历法采用太阳每日运行四分之一度略微增加月运行的方法,每三百岁修改一次历法,用二元推算,七十多年后,用强弱相承的方法调整,强弱的差异很小,但足以保证长期计算的准确性。当时,尚书和史官把《乾度历》和《泰始历》进行对比,校对古今的记载,《乾度历》明显优于《泰始历》,比当时的官历准确45处。现在这种算法还保存着。我还把古代和现代的十种历法拿来验证春秋时代的历法,发现《三统历》误差最大。

《春秋》共计七百七十九日,(《经》三百九十三日,《传》三百八十六日。)记载了三十七次日食。(三次没有记载甲乙。)

《黄帝历》共计四百六十六日,一次日食。

《颛顼历》共计五百九十日,八次日食。

《夏历》共计五百三十六日,十四次日食。

《真夏历》共计四百六十六日,一次日食。

《殷历》共计五百三日,十三次日食。

《周历》共计五百六日,十三次日食。

《真周历》算出来是485天,发生一次日食。 《鲁历》算出来是529天,发生13次日食。《三统历》算出来是484天,发生一次日食。《乾象历》算出来是495天,发生7次日食。《泰始历》算出来是510天,发生19次日食。《乾度历》算出来是538天,发生19次日食。现在咱们用的《长历》,算出来是746天,发生了33次日食。不过这里面有点问题,《经传》记错了,少记了33天,实际应该有4次日食,有三次日食没有记录甲乙(可能是指记录不完整)。

汉朝末年,有个叫宋仲子的学者,他收集了七种历法来研究《春秋》的年代。他发现夏历和周历的算法,跟《汉书·艺文志》里记载的不一样,所以他就把它们改名叫《真夏历》和《真周历》。

穆帝永和八年,有个叫王朔的著作郎,他是琅邪王,他创造了一种新的历法叫《通历》。这个历法以甲子年为起始点,计算周期长达97000年,用4883年作为一个大周期,把一周天分成1225度。他认为这个起始点就是天地开辟的开始。

后秦姚兴的时候,公元414年,天水人姜岌编写了《三纪甲子元历》。书里大概说:要制定历法,必须先弄清楚日月运行的规律,这样才能推算天象,了解地上的变化。要是弄错了根本,那四季就会错乱。所以孔子编写《春秋》,都是日复一日,月复一月,时复一时,年复一年,按顺序记录,因为他明白天象变化是人事根本,所以历法历来都被统治者重视。从伏羲氏开始,到汉魏时期,各个朝代都制定过自己的历法,力求准确。要检验历法的准确性,就得看它对日月交会和日食的推算是否吻合。可是,古代文献记载,只有《春秋》详细记录了日食的变化,从隐公到哀公,一共242年,记录了36次日食,但它用的是什么历法,就不知道了。

班固认为《春秋》沿用了鲁国的历法,而鲁国的历法不准确,所以闰月安排得乱七八糟。鲁国把闰余一年作为纪元开始,但检查《春秋》的闰月安排,和这个纪元对不上。 《命历序》里说:孔子为了编写《春秋》,重新研究了殷商的旧历法,好让它的算法流传后世。这样看来,《春秋》应该用殷商历法来校正。可是现在我们用殷商历法来检验《春秋》的记载,发现很多朔日(每月初一)都对不上,有的提前一天,有的晚一天。《公羊传》和《春秋经传》的朔日记载还不一样,这在情理上可以理解,但《春秋经》有日食的验证,而《传》却错了。

服虔解释说,《公羊传》用的是太初上元,太初上元是刘歆的《三统历》的纪元,这和《春秋》有什么关系呢?用汉朝的历法来解释《春秋》,是不是太牵强了?《公羊传》的错误很多,不止这一件事。襄公二十七年十一月乙亥朔日发生日食,《公羊传》说:“辰宿在申,司历失职,两次安排闰月都错了。”但根据推算,日食发生在这个月是正常的,根本没有两次安排闰月出错的情况。刘歆的历法和《春秋》记载的日食,有的只差一天,其他的大多差两天。他还附会《春秋五行传》,提出日食是由于政治混乱造成的。刘歆不承认历法有误,反而编造理由,这真是冤枉天象,误导后世啊!

杜预也认为,周朝衰败,天下大乱,学者们都搞不清楚真正的历法,现在流传的七种历法,未必是当时王室使用的。现在我们用这七种历法来检验古代和现代的日月交会,发现都不准确,都是因为斗分的数值不同造成的。《殷历》的斗分是四分之一,《三统历》是1539分之385,《乾象历》是589分之145,《景初历》是1843分之455,这些历法的斗分大小不同,算法也各不相同。《殷历》的斗分太粗,所以不能用于现在;《乾象历》的斗分太细,所以不能用于古代;《景初历》的斗分虽然比较适中,但太阳的位置却差了四度,日月食的推算也都对不上。比如,如果日食发生在东井,用月球的位置来推算,却在参宿六度,误差这么大,怎么能用来推算天象和人事呢?

现在我制定新的历法,用2451分之605作为斗分,太阳在斗宿十七度,这是天象的起始点,既可以用来校正《春秋》的记载,也可以用来检验现代的天象。用这个历法来检验《春秋》中记载的36次日食,有25次准确无误,2次只差一天,2次只差一天,5次有误差,一共34次,其余两次经文中没有记载日食发生的日期,无法检验其准确性。各种图纬书都说“三百岁斗历改宪”。

要是把咱们现在用的这种新历法放到春秋时代去用,日食大多发生在朔日(农历初一)。从春秋时代到现在,已经一千多年了,日食的发生总是在朔、望(农历十五)前后这三次之间来回变动。所以这个方法可以一直用下去,哪还需要像以前那样,每隔三百多年就改换历法呢?

这个方法,靠谱!想想看,从春秋时代到现在,都一千多年了,日食的规律一直没变,都在朔望前后那几天转悠。咱们这新历法,完全能适应这种规律,用个几百年上千年都没问题。不像以前那些历法,动不动就改,麻烦死了!三百多年改一次,累不累啊?

从甲子上元开始,到鲁隐公元年己未年,一共过了八万二千七百三十六年。再算到晋孝武太元九年甲申年,一共过了八万三千八百四十一年的时间。

按照元法计算,是七千三百五十三;按照纪法计算,是二千四百五十一;总共加起来,是十七万九千四十四。日法是六千六百二十;月周是三万二千七百六十六;气分是一万二千八百六十;元月是九万九千四十五;纪月是三万三百一十五;没分是四万四千七百六十一;没法是六百四十三;斗分是六百五;周天是八十九万五千二百二十(也叫纪日);章月是二百三十五;章岁是十九;章闰是七;岁中是十二;会数是四十七(日月八百九十三岁,一共四十七会,正好分完);气中是十二;甲子纪交差是九千一百五十七;甲申纪交差是六千三百三十七;甲辰纪交差是三千五百一十七;周半是一百二十七;朔望合数是九百四十一;会岁是八百九十三;会月是一万一千四十五;小分是二千一百九十六;章数是一百二十九;小分是二千一百八十三;周闰大分是七万六千二百六十九;历周是四十四万七千六百一十(半周天);会分是三万八千一百三十四;差分是一万一千九百八十六;会率是一千八百八十二;小分法是二千二百九;入交限是一万一百四;小周是二百五十四;甲子纪差率是四万九千一百七十八;甲申纪差率是五万八千二百三十一;甲辰纪差率是六万七千二百八十四;通周是十六万七千六十三;周日日余是三千三百六十二;周虚是二千七百一。

咱们先说说这五星的推算方法。书上说,用“五星约法”算出来的结果,就当作标准答案,不用非得跟最原始的资料对上号。你想啊,最开始推算的方法,跟现在用的方法肯定不一样,各有各的方便之处,所以作者才设计了两种方法。

岌(音jí)老先生还用月食来检验太阳运行的度数,这可是历法研究者的圭臬啊!他还写了本《浑天论》,用它来计算太阳在黄道上的运行轨迹,驳斥了以前儒家学者的一些错误观点,算是把这个问题彻底搞明白了。