话说啊,古时候那些圣人制定历法,那可是费了大功夫的!他们仔细观察天上的星象,研究北极星的运转,日月星辰的运行规律,太阳光影的变化,斗宿的指向,以及二十八宿的运行位置,还有各种复杂的星象变化和数字关系,最终才制定出历法来。

你看这天啊,它一天一夜就转了一圈。星星跟着天球从西往东转,太阳却反着来,从东往西走。太阳运行的周长在天空中是固定的度数,在历法里就换算成天数。太阳运行经过不同的星宿,一年一共是三百六十五天,用甲乙等天干地支来记日子,一共是六十甲子。太阳和月亮你追我赶,月亮有时候跑得快,有时候跑得慢,当它们在同一点相遇时,就叫作“合朔”,也就是初一;月亮快的时候,太阳慢的时候,就形成了上弦月和下弦月;当太阳和月亮相距最远的时候,就叫作“望”,也就是十五;月亮追上太阳,光线被遮蔽,就叫作“晦”,也就是月末。 初一、月末、月亮盈亏,斗宿的指向变化,这些都构成了一个月的周期。太阳的运行轨迹决定了四季的变化:太阳运行到最北边,就是冬天;往西边走,就是春天;到最南边,就是夏天;往东边走,就是秋天。太阳离北极点越远,影子就越长,影子最长的时候就是冬至;反之,影子最短的时候就是夏至。在冬至和夏至之间,太阳光直射赤道,影子长度适中,就是春秋分。

一年四季,冷暖交替,万物生长变化,这都是太阳一年绕地球一圈的结果。 摄提星的运行位置变化,青龙星宿的运行位置变化,就标志着一年过去了。一年开始的时候是冬至,一个月开始的时候是初一。冬至和初一在同一天,就叫“章”;冬至和初一都在月初,就叫“蔀”;六十年一个“蔀”,就叫“纪”;冬至和初一又重合,就叫“元”。 所以说,用“日”来计算具体天数,“月”来安排闰月,“时”来划分时间段,“岁”来计算年份,“章”来标记特殊日子,“蔀”来划分更大的时间段,“纪”来记录更长的时间,“元”来作为起始点。 这样一来,不管天象怎么变化,时间怎么推移,都能按照这个规律来安排,井井有条。

话说啊,古代的天文观测,那可是相当讲究的。你看,他们会在观测台中央立个东西,外面再搭个遮挡物,用精密的仪器追踪太阳,观察它的运行规律,从而推算出光线的变化。再用个带孔的容器做漏壶,用浮箭计时,观察恒星的位置,判断昼夜的长短。

太阳有它的运行轨迹,月亮呢,也有它九条运行的路线,这些路线互相交错,就形成了月亮盈亏的变化。月亮的朔(农历初一)和望(农历十五),跟这些交点的位置有关,所以月亮才会出现圆缺。月亮有阴晴圆缺,星星也有互相靠近和远离的时候,月亮有弦月和满月,星星也有停滞和逆行的现象,这些都是相互关联的,通过这些现象就能推算出星象运行的规律。金星和水星的运行受太阳影响,有时运行速度快,有时慢,快的时候就先于太阳出现,慢的时候就滞后,滞后就逆行,逆行就反着太阳的方向走,反着走又会加快速度,加快速度又会先于太阳出现,这样一来,速度的快慢和运行方向的变化,就决定了它们在清晨和傍晚出现的时间。太阳、月亮和五大行星,都有各自的运行周期,从而形成了七曜的运行规律。星星的出现和消失,运行的快慢都有规律可循,所以才能推算出它们的运行规律。通过对这些现象的观察和整理,就能推算出天体运行的周期,最终掌握天体的运行规律。 古代的天文学家们,真是费尽心思,深入研究,没有一个隐秘的现象逃过他们的眼睛。

所以啊,阴阳有了规律,寒暑有了节气,天地运行有序,日月运行规律分明,这都是他们辛勤研究的结果。

再说说那些负责天文观测的人吧,他们肩负着传承和发展天文事业的重任,就像上古时代的重黎一样,受命于天,掌管历法和天文观测,指导人们从事农业生产,制定闰月和节气,完成一年的农事,羲和就是这方面的杰出代表。

商朝的汤王和周朝的武王,他们就根据金星和火星的运行规律,改革历法,使历法更加精确,从而使国家治理清明,百姓安居乐业。

可是,等到王室衰败的时候,昏庸的君主在上面胡作非为,愚昧无知的史官在下面弄虚作假。夏朝的时候,羲和沉迷享乐,荒废了历法,扰乱了时间,最后被夏王胤征讨。商纣王也荒淫无道,废弃了历法,最终被周武王所灭。你看,那些能够遵循并阐明天文规律的人,他们的事业兴盛;而那些违背并破坏天文规律的人,他们的国家很快就会灭亡。这天文历法,就像天地运行的纲纪,是帝王成就伟业的重要因素,所以圣人珍视它,君子勤于研究它。

古人说,圣人有六种德行:注重本性就看重他的本质,注重规律就看重他的条理,注重分类就看重他的表象,注重做事就看重他的时机,注重预测过去就看重他的根源,注重预测未来就看重他的发展趋势。伟大的事业都建立在这些基础上,吉凶祸福也由此而生。所以君子要有所作为的时候,都会认真思考之后再行动,接受使命后绝不违背。

要说利用天时地利,根据时间实施教化,在明堂颁布法令,为百姓谋求福祉,那最重要的是《月令》。这可是帝王最大的职责,也是天下所有事情的根本。超过了这个范围,那些琐碎的禁忌和限制,君子们大多都不知道了。

二十八宿中的斗宿,距离北极星最远,太阳运行到那里就是冬至,万物也从这时开始生长。所以律吕的起始音是黄钟,历法的起始点是冬至,月份的起始是子月,时间上是夜晚的半夜。汉高祖刘邦受命的时候四十五岁,太阳在“上章”星宿,月亮在“执徐”星宿,那年十一月甲子日半夜,朔日冬至,日月运行和闰月积攒的数目都从这里开始计算。于是他制定了新的历法,叫做《汉历》。他又往上推算两个元会,并推算出了月食和五星会合的周期,从此有了确切的起始点。

话说古人研究时间,首先得立个仪器,观察日影的长度。影长就说明离太阳远,这是天体运行的起点。太阳从这个起点出发,运行一圈就是一年,但日影长度不会立刻回到起点。要过1461天,日影才回到最初的长度,这就算太阳运行一个周期了。用周天(1461天)除以天数,得到一年有365又1/4天。太阳每天运行一度,也是天体的度数。

观察太阳和月亮同时从起点出发,太阳运行19个周期,月亮运行254个周期,它们又同时回到起点,这就是月亮运行一个周期的长度。用太阳的周期除以月亮的周期,就能得到一年中天体运行的总次数。再减去太阳的一个周期,剩下的部分除以29又7/19,就是一年有多少个月,以及每个月的天数。月亮的剩余天数积累到一定程度,就形成一个月,这样一年就可能多一个月,也就是闰月。一年有四季,所以设立十二个中气来确定月份的位置。如果只有朔日而没有中气,那就是闰月。中气的开始叫做节气,十二个中气和十二个节气合起来就是二十四节气。用一年天数除以二十四节气,就能算出每个节气的时长。节气剩余的天数积累起来,就形成了“没”,把“没”和一年中节气的剩余天数合起来,按照同样的方法计算,就能得到一年有多少个“没”。“没”在冬至结束,冬至的剩余天数积累到一定程度,就形成一天,四年后完成一个周期。月亮形成闰月,七个闰月之后就完成一个周期,这个周期有19年,叫做“章”。四个“章”的周期结束后,叫做“蔀”。用一年天数乘以“蔀”的年数,就是“蔀”的天数。用甲子纪年法,六十甲子一循环,所以二十个“蔀”就是一个“纪”。“纪”的年数还没到青龙年结束,再过三个周期后,青龙年又开始了,这叫做“元”。

元法是4560年;纪法是1520年;纪月是18800个月;蔀法是76年;蔀月是940个月;章法是19年;章月是235个月;周天是1461天;日法是4;蔀日是27759天;没数是21;通法是487;没法是7(因为章闰);日余是168;中法是32;大周是343335天;月周是1160个月。

接下来说月食的计算。记录月食发生的时间,大约每发生23次月食后,又会回到同样的时间点,这期间大约有135个月。用这两个数字相除,得到大约每5.87个月发生一次月食(23/5.87≈4)。用这个数字除以一年中的月数,就能算出一年中大约发生几次月食,大约是0.55次(4/7.3≈0.55)。把这个小数部分按照一定的规则计算,再和“蔀”的年数进行约分,得到4和27,相乘得到108,再乘以20,就得到一个周期,叫做“元会”。

元会是41040年。

好家伙,这数字看着就头大!咱们先捋捋,这“蔀会”是2520年,“岁数”是513年,“食数”是181次,“月数”是135个月,“食法”是23次。 这些数字都是啥意思呢?估计是古代计算天文历法用的,反正我是看不懂。

接下来是计算方法,这也太专业了! “推入蔀术曰:以元法除去上元,其余以纪法除之,所得数从天纪,算外则所入纪也。不满纪法者,入纪年数也。以蔀法除之,所得数从甲子蔀起,算外,所入纪岁名命之,算上,即所求年太岁所在。” 这段话的意思大概是:用某个基准数(元法)减去另一个基准数(上元),剩下的再用另一个数(纪法)除,结果从天纪开始算,算到外面就是所处纪元。如果结果小于纪法,那就是在该纪元的年份。再用蔀法除,结果从甲子蔀开始算,算到外面就是所处纪元的年份名称,算到里面就是所求年份的太岁。 这简直就是天书啊!

“推月食所入蔀会年,以元会除去上元,其余以蔀会除之,所得以二十七乘之,满六十除去之,余以二十除所得数,从天纪,算外,所入纪,不满二十者,数从甲子蔀起,算外,所入蔀会也。其初不满蔀会者,入蔀会年数也。各以所入纪岁名命之,算上,即所求年太岁所在。” 这段更复杂! 大概意思是:算月食发生在哪一年,用元会减去上元,剩下的用蔀会除,结果乘以27,再减去60的倍数,剩下的再除以20,从天纪开始算,算到外面就是所处纪元。不满20,就从甲子蔀开始算,算到外面就是所处蔀会。如果一开始就小于蔀会,那就是在该蔀会的年份。最后,根据纪元和年份,就能知道那年的太岁是什么。 这简直比绕口令还难!

最后,这个表格应该是计算结果吧,列出了不同纪元(天纪、地纪、人纪)在不同蔀会中的年份和对应的太岁。 “──────┬─────┬─────┬───────

天纪岁名 │地纪岁名 │人纪岁名 │ 蔀首

──────┼─────┼─────┼───────

庚辰 │ 庚子 │ 庚申 │ 甲子一

丙申 │ 丙辰 │ 丙子 │ 癸卯二

壬子 │ 壬申 │ 壬辰 │ 壬午三

戊辰 │ 戊子 │ 戊申 │ 辛酉四

甲申 │ 甲辰 │ 甲子 │ 庚子五

庚子 │ 庚申 │ 庚辰 │ 己卯六

丙辰 │ 丙子 │ 丙申 │ 戊午七

壬申 │ 壬辰 │ 壬子 │ 丁酉八

戊子 │ 戊申 │ 戊辰 │ 丙子九

甲辰 │ 甲子 │ 甲申 │ 乙卯十

庚申 │ 庚辰 │ 庚子 │ 甲午十一

丙子 │ 丙申 │ 丙辰 │ 癸酉十二

壬辰 │ 壬子 │ 壬申 │ 壬子十三

戊申 │ 戊辰 │ 戊子 │ 辛卯十四

甲子 │ 甲申 │ 甲辰 │ 庚午十五

庚辰 │ 庚子 │ 庚申 │ 己酉十六

丙申 │ 丙辰 │ 丙子 │ 戊子十七

壬子 │ 壬申 │ 壬辰 │ 丁卯十八

戊辰 │ 戊子 │ 戊申 │ 丙午十九

甲申 │ 甲辰 │ 甲子 │ 乙酉二十

──────┴─────┴─────┴─────────” 这表格我只能照搬了,反正我也看不懂具体是啥意思。总之,这古代的天文计算,真是复杂啊!

这段文字描述的是古代天文历法计算方法,非常专业,咱们一句句来掰扯掰扯,尽量用大白话解释。

第一段:算年份的时候,先把一个周期(蔀)的年数减一,然后乘以每个月的天数。如果正好是周期的整数倍,就叫“积月”,不够整数倍的剩余就是“闰余”。如果积月超过十二个月,那这一年就是闰年。

第二段:算具体某一天的时候,先把一个周期(蔀)的月份数算出来(积月),再乘以周期里每天的数目。如果正好是周期月份的整数倍,就叫“积日”,不够整数倍的剩余叫“小余”。然后用60去除积日,剩下的余数叫“大余”,用周期名称来命名它。算完之后,如果算尽了,那就是前一年十一月一号。如果小余超过441,这个月就是大月。要算下个月一号,就在大余里加29,小余里加499;如果小余正好是周期月份的整数倍,就加个大余,命名方法跟前面一样。

第三段:还有一种方法,用一个大周期(大周)的年数乘以年份,再减去大周期年数乘以闰余,如果剩余的正好是一个周期月份的整数倍,那就是天正朔日(正月初一)。

第四段:算二十四节气的方法是:先把一个周期(蔀)的年数减一,然后乘以每天的数目。如果正好是周期里节气个数的整数倍,就叫“大余”,不够整数倍的剩余叫“小余”。用60去除大余,剩下的余数用周期名称来命名。算完之后,如果算尽了,那就是前一年冬至那天。

第五段:要算下一个节气(比如小寒),就在大余里加15,小余里加7,命名方法跟前面一样。

第六段:算闰月在哪个月,用闰余减去每个月的天数,剩下的数乘以12。如果正好是闰月个数的整数倍,或者超过四个也是整数倍,就从前一年十一月开始算,算到头就是闰月。也可能提前或延后,用中气来确定。

第七段:算上弦月、望月和下弦月,根据每个月的盈亏数,都在大余里加7,小余里加359又四分之三。如果小余正好是周期月份的整数倍,就加个大余,命名方法跟前面一样,就能算出上弦月。再加就能算出望月、下弦月,然后是下个月初一。如果弦月、望月的小余小于260,就乘以100刻,每满一个周期月份就是一刻,不满的话,就取最接近节气夜里漏刻一半的数,向上取整就是天数。

第八段:算星星消失(没)和复现(灭)的日子,先把一个周期(蔀)的年数减一,乘以消失的次数,如果正好是每天数目的整数倍,就叫“积没”,不够整数倍的剩余叫“没余”。然后用一个常数(通法)乘以积没,如果正好是消失次数的整数倍,就叫“大余”,不够整数倍的剩余叫“小余”。用60去除大余,剩下的余数用周期名称来命名。算完之后,如果算尽了,那就是前一年冬至前星星消失的那天。要算下一次消失,就在大余里加69,小余里加4;如果小余正好是消失次数的整数倍,就从大余开始,命名方法跟前面一样,没有小数就是复现。

第九段:还有一种方法,用15乘以冬至的小余,再减去那个常数(通法),如果剩下的正好是消失次数的整数倍,那就是天正之后星星消失的日子。

首先,咱们算算月亮啥时候合朔(农历初一)。先算出合朔那天的度数,然后用一个叫“蔀”的单位来算日子,把日子乘以“蔀”里的天数,算完之后把整的“蔀”去掉,剩下的就是“积度”,不够一个“蔀”的叫余分。这“积度”加上21度235分,再除以一个叫“宿次”的单位,如果结果不够一“宿”,那就是月亮合朔时所在的星宿度数了。要算下次合朔,就加上29度499分,分满一个“蔀”月就加一度,再除以235分。

还有一种方法,用闰余乘以周天,再减去大周的余数,够一个“蔀”月就加一,然后加上21度4分1,就能算出天正合朔时日月所在的度数了。“天正”指的是子夜。

接下来,咱们算算太阳在啥位置。先把日子数乘以“蔀”里的天数,算完之后把整的“蔀”去掉,剩下的就是“积度”,不够一个“蔀”的叫余分。“积度”加上21度19分,再除以“宿次”,就能算出半夜太阳所在的星宿度数了。

要算第二天,就加一度;要算下个月,大月加30度,小月加29度,再除以19分。还有一种方法,用朔日余数减去合朔度数的分数,就能算出当天半夜太阳的位置。把分数除以235,再乘以19。

然后,咱们算算月亮在啥位置。先把日子数乘以月周,算完之后把整的“蔀”去掉,剩下的就是“积度”,不够一个“蔀”的叫余分。“积度”加上21度19分,再除以“宿次”,就能算出半夜月亮所在的星宿度数了。

要算第二天,就加13度28分;要算下个月,大月加35度61分,小月加22度33分,分满一个“蔀”法就加一度,再除以19分。冬天月底月亮在张宿、心宿附近的时候,就说明白天的时间已经很短了,快到漏尽(日晷计时器上的刻度走完)了。还有一种方法,用“蔀”法除以朔日余数,用结果减去日半度,剩下的再减去分数,就能算出半夜月亮所在的度数了。

最后,咱们算算太阳升起和落下的时间。要算太阳升起的时间,先把这个月的节气夜漏数乘以“蔀”法,再除以200,得到的结果就是半夜到日出这段时间太阳走的度数。把这个度数加到半夜太阳所在的度数上,就是太阳升起的度数了。

要算太阳落下的时间,用半夜到日出这段时间太阳走的度数减去“蔀”法,剩下的就是半夜到日落这段时间太阳走的度数。把这个度数加到半夜太阳所在的度数上,就是太阳落下的度数了。

咱们先来说说怎么算月亮的亮度和位置。书上说,要算月亮最亮的时候在哪个度数,先把那天晚上漏刻的数目乘以月亮绕地球一圈的天数,再除以200,得到一个积分。这个积分每满一个蔀(bù,古代历法单位),就增加夜半(子夜)的度数,这样算出来的就是月亮最亮时所在的度数。

要算月亮刚出来的时候在哪个度数,就用刚才算出来的月亮最亮时的积分减去月亮绕地球一圈的天数,剩下的部分每满一个蔀就加一度,再加夜半的度数,就是月亮刚出来时的度数了。

接下来是算弦月和望月(满月)在哪个星宿。先把朔日(农历初一)的度数加上7度359分又四分之三,然后除以星宿的度数,就能算出上弦月所在的星宿和度数了。 要算望月和下弦月,方法一样,只是小数部分每满四就进一位,大数部分每满一个蔀就进一度。

算弦月和望月的星宿位置,方法也差不多。先把朔日的度数加上98度653分半,再除以星宿的度数,就能算出上弦月所在的星宿和度数了。 望月和下弦月也一样算,小数部分每满一个蔀就进一度。

然后是月食的计算方法。书上说,先算出从上一个蔀开始到现在有多少年,减去一,再乘以月食的次数,如果结果大于或等于一年的天数,就取一,叫做“积食”,不够就记下剩余的,叫做“食余”。再用月份数乘以积食,如果结果大于或等于月食的次数,就取一,叫做“积月”,不够就记下剩余的,叫做“月余分”。然后用积月除以一个章月(古代历法单位),剩下的就是入章月的数目。要先减去入章闰月,再除以12,不够12的就按11月算,算完之后,如果结果是负数,那就是前一年十一月之前的月食。

要算入章闰月,就用入章月乘以章闰(古代历法单位),如果结果大于或等于一个章月,就得到入章闰月的数目。如果余数在224到231之间,月食就在闰月。闰月是提前还是推后,要根据朔日来决定。要算下一次月食,就在这次月食的基础上加上5个月20分,如果结果超过一个月,就按上面的方法继续计算,直到小数部分计算完毕。

最后是算月食发生的朔日。先把积月乘以29,得到积日。再把积月乘以499,如果结果大于或等于一个蔀月,就取一,然后加上积日,再除以60,余数就是这次月食所在的蔀,算完之后,如果结果是负数,那就是前一年天正(古代历法单位)之前的月食朔日。

要算月食发生的具体日子,就要加上大余14,小余719分半,小数部分每满一个蔀月就进一位大数部分,然后按照前面的方法计算,就能得到月食发生的日期。要算下一次月食的朔日和日期,就分别加上大余27,小余615。如果月余分不满20,还要再加29,小余499。剩下的余数要用漏刻来计算,如果夜漏还没结束,就按计算结果算作第二天。

这段文字描述了一种古代天文计算方法,看起来很复杂,咱们一句一句地捋捋。

第一段:用年份减去上元年的年份,得到一个积月数,再用这个积月数乘以112,然后减去一个满月数(应该是指某个固定的数值),余数为1,就说明是天正之后的一个朔日。 简单来说,就是通过计算确定一个特定的日子。

第二段:要推算某个加时(大概是指某个特殊的时间点),用12乘以前面算出来的余数,先减去“如法之半”(这个“如法”指什么需要更多上下文),得到一个时间,剩下的再用“法”除,所得的数值从子时(半夜)开始算起,算到这个数值,就是加时的时间。 这一段描述了更精细的时间推算方法,涉及到一些特定的天文常数和计算步骤。

第三段:推算上水漏刻(古代计时工具):用100乘以小余数,如果能整除“法”(这个“法”可能也是一个固定的天文常数),就得到一刻;如果不能整除,就看能除几次“法”的十分之一,得到几分。把算出来的刻数先减去所入节气夜漏的一半,剩下的就是白天上水漏的刻数;再从白天漏刻数里减去白天漏刻数,剩下的就是晚上上水漏的刻数。如果刻数不足夜漏的一半,就减去它,剩下的就是昨夜没漏完的刻数,这个时间点是弦望(农历初七或初八,廿二或廿三)的那天。 这一段描述了如何利用漏刻推算昼夜时间长度,以及如何确定弦望日。

第四段:五星(金木水火土)的运行,每天都要记录下来,并与周天度数(360度)进行比例计算。用章法(可能是某个常数)乘以周率(360度)得到月法,再用章月(可能是某个常数)乘以日率,如果等于月法,就得到积月和月余。用月日数乘以积月,得到朔日大小余;再乘以某个数得到入月日余。用日法乘以周率得到日度法,用周率减去日率,余数乘以周天,如果等于日度法,就得到积度和度余。日率经过约分,得到29911621582300这个数值,五星运行周期与蔀(一个很长的周期单位)的数值相同,与元(可能是指上元)相通。 这一段描述了五星运行轨迹的计算方法,涉及到大量的常数和复杂的计算步骤。

第五段到最后:接下来列出了一些具体的数值,包括周率、日率、合积月、月余、月法、大余、小余、虚分、入月日、日余、日度法、积度、度余等等,这些数值分别对应着不同的星体(火、土)的计算参数。 这些是具体的计算参数,用于前述计算方法中的各个步骤。

总而言之,这段文字描述了一种非常复杂的天文历法计算方法,涉及到大量的常数、比例关系和复杂的计算步骤,其目的在于精确推算时间和星体运行轨迹。 现代人很难完全理解其背后的原理,除非有更详细的背景资料和解释。

大余是54,小余是348,虚分是592,入月日是24,日余是2163,日度法是36384,积度是12,度余是29451。金星的周率是5830,日率是4661。合积月是9,月余是98450,月法是117770,大余是25,小余是731,虚分是290,入月日是26,日余是281,日度法是33320,积度是292,度余是281。水星的周率是11980,日率是1889,合积月是1,月余是217663,月法是226252,大余是29,小余是499,虚分是441,入月日是28,日余是44850,日度法是47632,积度是57,度余是44850。

接下来是推算五星运行的方法:先从上元时期开始,算到所求的年份,用周率乘以年份,如果能整除日率,就得到一个“积合”,也就是一个完整的周期;如果不能整除,余数就是“合余”。用周率去除合余,如果能整除,就表示年份要往前推;如果不能整除,就表示星体在这一年合,如果余数是1,就表示前一年合,余数是2,就表示前两年合。金星和水星的积合,奇数表示早晨相合,偶数表示傍晚相合。如果不能整除周率,就用周率减去余数,余数就是度分。

推算星体合月,用合积月乘以积合得到一个小积,再用月余乘以积合,如果能整除月法,就从这个小积中减去一个完整的月数,剩下的就是月余。月余满一个纪月就减去,剩下的就是入纪月。然后用章闰乘以入纪月,如果能整除章月,就表示有闰月;不能整除,余数就是闰余。用闰余减去入纪月,剩下的数除以12,余数就是入岁月数,从天正十一月开始算,算出来的就是星体合月的月份。如果闰余在224到231之间,就表示星体合在闰月。闰月是否提前或延后,要根据朔日来决定。

最后是推算朔日,用蔀日乘以入纪月,如果能整除蔀月,就得到积日;不能整除,余数就是小余。积日满60就减去60,剩下的就是大余,用甲子来命名,算出来的就是星体合月的朔日。

咱们先算入月日,就是把月日乘以蔀日,再用这个结果乘以朔日的小余,然后用4465去除,商数就是入月日,余数就是日余。用甲子来记这个大余,算完之后,就知道星和太阳合在什么日子了。

接下来算合度,把周天乘以度分,用满日度法去除,商数是积度,余数是度余。用斗(21.4分)来记度,算完后,就知道星在哪个度数上了。

还有一个方法,用年份减去上元,满八十就除去,剩下的数乘以没数,用满日法去除,商数是大余,余数是小余。用甲子来记大余,就知道星和岁天正冬至日合在什么日子了。然后用周率乘以小余,加上度余,再用满日度法去除,商数就是星合日数,用冬至来记。要算下一次合月,就把合积月加到入岁月里,月余加到月余里,满月法就除去,剩下的就是入岁月。入岁月满十二就除去,有闰月要记着,剩下的就和前面一样记,算完后就知道下一次合月了。金星和水星,加晨得夕,加夕得晨,这个大家都懂的。

要算朔日,就把大小余加到现在的结果里,如果月余够一个月了,再加大余29,小余499,小余满蔀月就除去,再加大余,大余的记法和前面一样。

算入月日,就把入月日的日余加到现在的结果里,满日度法就除去,剩下的就是日。如果前面合月的朔日小余满了虚分,就空加一天。如果日满了月,先减去29,如果后面合月的朔日小余不满499,再减一天,剩下的记法和前面一样。

最后算合度,把积度和度余加到现在的结果里,满日度法就除去,剩下的就和前面一样记,用斗除就像用周率一样。

话说这木星啊,早上它藏起来了,大概在十六天七千三百二十一分半钟之后,它走了两万三千八百一十一分这么远,然后在太阳后面十三度左右的地方出现,咱们就能在东边看到它了。你看它顺行的时候,每天走五十八分之十一度,五十八天走十一度。有时候它走得慢一点,每天只走九分,五十八天走九度。然后它会停下来,停二十五天。接着它就倒着走了,每天走七分之一度,八十四天倒退十二度。再停,二十五天。然后又开始顺行了,五十八天走九度,再五十八天走十一度,最后在太阳前面十三度左右的地方出现,晚上就能在西边看到它了。算上它藏起来、倒着走这些时间,一次完整的周期是三百六十六天,它一共走了二十八度。然后它又藏起来,十六天七千三百二十一分半钟后,走了两万三千八百一十一分,跟太阳又走到一块儿了。这样算下来,一个完整的周期是三百九十八天,大概一万四千六百四十一分,行星走了三十三度和一万三百一十四分,平均每天走四千七百二十五分之三百九十八。

火星呢,早上也藏起来了,七十一天二千六百九十四分之后,它走了五十五度二千二百五十四分半,在太阳后面十六度左右的地方出现,咱们就能在东边看到它了。它顺行的时候,每天走二十三分之十四度,一百八十四天走一百一十二度。有时候它也走得慢,每天走十二分,九十二天走四十八度。然后它也停,停十一天。接着它就倒着走了,每天走六十二分之十七度,六十二天倒退十七度。再停,十一天。然后又开始顺行了,九十二天走四十八度,再一百八十四天走一百一十二度,最后在太阳前面十六度左右的地方出现,晚上就能在西边看到它了。算上它藏起来、倒着走这些时间,一次完整的周期是六百三十六天,它一共走了三百三度。然后它又藏起来,七十一天二千六百九十四分之后,走了五十五度二千二百五十四分半,跟太阳又走到一块儿了。这样算下来,一个完整的周期是七百七十九天,大概一千八百七十二分,行星走了四百一十四度和九百九十三分,平均每天走一千八百七十六分之九百九十七。

早上,土星开始隐没,持续十九天一千八百一十一分半,运行三万四千七百二十五分半,在太阳后面十五度左右,然后出现在东方。运行方向顺行,每天运行四十三分之三度,八十六天运行六度。然后停止运行,持续三十三天。接着转向逆行,每天运行一百二分之十七度,每天后退六度。再次停止运行,持续三十三天。然后再次顺行,八十六天运行六度,在太阳前面十五度左右,傍晚隐没在西方。从隐没到逆行结束,一共三百四十天,运行六度。再次隐没,持续十九天一千八百一十一分半,运行三万四千七百二十五分半,与太阳会合。这样一次完整的周期,共三百七十八天二千一百六十三分,行星运行十二度二万九千四百五十一分。平均每天运行九千四百一十五分之三百一十九度。

早上,金星开始隐没,持续五天,后退四度,在太阳后面九度左右,然后出现在东方。运行方向逆行,每天运行五分之三度,十天后退六度。然后停止运行,持续八天。接着转向顺行,每天运行三十三分之四十六度,四十六天运行三十三度。速度加快,每天运行十五分之九十一一度,九十一天运行一百六度。速度进一步加快,每天运行一度二十二分,九十一天运行一百一十三度,在太阳后面九度左右,早上隐没在东方。从隐没到逆行结束,一共二百四十六天,运行二百四十六度。隐没持续四十一 天二百八十一分,运行五十度二百八十一分,然后与太阳会合。一次完整的会合周期是二百九十二天二百八十一分,行星运行角度相同。

傍晚,金星开始隐没,持续四十一 天二百八十一分,运行五十度二百八十一分,在太阳前面九度左右,然后出现在西方。运行方向顺行,速度很快,每天运行二十二分之九十一一度,九十一天运行一百一十三度。速度略微减慢,每天运行一度十五分,九十一天运行一百六度。速度进一步减慢,每天运行三十三分之四十六度,四十六天运行三十三度。然后停止运行,持续八天。接着转向逆行,每天运行五分之三度,十天后退六度,在太阳前面九度左右,傍晚隐没在西方。从隐没到逆行结束,一共二百四十六天,运行二百四十六度,隐没持续五天,后退四度然后再次会合。这样两次会合一个完整的周期,共五百八十四天五百六十二分,行星运行角度相同。平均每天运行一度。

水星啊,它早上藏起来,九天后往后退七度,再过十六天才在东方出现。如果它逆行,一天退一度,停下来不动两天。然后它又顺行,每天走八分之九度,九天走八度。如果它运行速度快,每天走一度又四分之一度,二十天走二十五度,再过十六天,早上就能在东方看到了。从它逆行到再次出现,一共三十二天,走了三十二度,停了十六天四万四千八百五分,又走了三十二度四万四千八百五分,才和太阳会合。一次会合一共五十七天又四万四千八百五分,水星就是这样运行的。

水星啊,它晚上藏起来,十六天四万四千八百五分,走了三十二度四万四千八百五分,在太阳前面十六度的地方,就能在西方看到了。如果它顺行,速度快,每天走一度又四分之一度,二十天走二十五度。如果它运行速度慢,每天走八分之九度,九天走八度。停下来不动两天。然后它又逆行,一天退一度,在太阳前面十六度的地方,晚上就能在西方看到了。从它逆行到再次出现,一共三十二天,走了三十二度,停了九天,退了七度才再次会合。两次会合算作一个周期,一共一百一十五天又四万一千九百七十八分,水星就是这样运行的。平均每天走一度。

计算水星运行的方法,是用步数来计算水星每天运行的度数和分数,加上星体与太阳会合的度数余数,按照之前的方法计算,就能得到星体出现时的度数。用分母乘以它,分数按照日度的方法除以一,如果除不尽,就按照一半的方法以上,也得到一,然后加上它运行的分数,满分母就得到一度。逆行和顺行的分母不一样,用当时运行的分母乘以原来的分数,就和原来的分母一样,就等于一。停下来的,就承接之前的,逆行就减去它,停下来的时候不用写度数。经度除法就像运行分母一样,四分之一等于一。分数有增减,前后相互抵消。用赤道来确定度数,前进就加,后退就减。用黄道来计算步数。

月名:

天正十一月 十二月 正月 二月 三月 四月 五月 六月

冬至 大寒 雨水 春分 谷雨 小满 夏至 大暑

七月 八月 九月 十月

处暑 秋分 霜降 小雪

斗二十六(四分一退二) 牛八 女十二(进一) 虚十(进二)

危十七(进二) 室十六(进三) 壁九(进一)

北方九十八度四分一

奎十六 娄十二(退一) 胃十四(退一) 昴十一(退二)

毕十六(退三) 觜二(退三) 参九(退四)

西方八十度,井宿三十三颗星(退三颗),鬼宿四颗星,柳宿十五颗星(进一颗)。张宿十八颗星(进一颗),翼宿十八颗星(进两颗),轸宿十七颗星(进一颗)。

南方一百一十二度,角宿十二颗星,亢宿九颗星(退一颗),氐宿十五颗星(退两颗),房宿五颗星(退三颗)。心宿五颗星(退三颗),尾宿十八颗星(退三颗),箕宿十一颗星(退三颗)。

东方七十五度,右赤道度,周天三百六十五度四分之一。斗宿二十四颗星(四分之一颗),牛宿七颗星,女宿十一颗星,虚宿十颗星。危宿十六颗星,室宿十八颗星,壁宿十颗星。

北方九十六度四分之一,奎宿十七颗星,娄宿十二颗星,胃宿十五颗星,昴宿十二颗星。毕宿十六颗星,觜宿三颗星,参宿八颗星。

西方八十三度,井宿三十颗星,鬼宿四颗星,柳宿十四颗星,星宿七颗星。张宿十七颗星,翼宿十九颗星,轸宿十八颗星。

南方一百九十度,角宿十三颗星,亢宿十颗星,氐宿十六颗星,房宿五颗星。心宿五颗星,尾宿十八颗星,箕宿十颗星。

东方七十七度,右黄道度,三百六十五度四分之一。

接下来这段是关于计算方法的说明,有点复杂,咱们直接看原文吧:黄道去极,日景之生,据仪、表也。漏刻之生,以去极远近差乘节气之差。如远近而差一刻,以相增损。昏明之生,以天度乘昼漏,夜漏减之,二百而一,为定度。以减天度,余为明;加定度一为昏。其余四之,如法为少。二为半,三为太,不尽,三之,如法为强,余半法以上以成强。强三为少,少四为度,其强二为少弱也。又以日度余为少强,而各加焉。

从上元甲子年到宋大明七年癸卯年,一共是五万一千九百三十九年,这不算在计算之内。

其他的计算方法和结果如下:

元法:五十九万二千三百六十五

纪法:三万九千四百九十一

章岁:三百九十一

章月:四千八百三十六

章闰:一百四十四

闰法:十二

月法:十一万六千三百二十一

日法:三千九百三十九

余数:二十万七千四十四

岁余:九千五百八十九

没分:三百六十万五千九百五十一

没法:五万一千七百六十一

周天:一千四百四十二万四千六百六十四

虚分:一万四百四十九

行分法:二十三

小分法:一千七百一十七

通周是726810天,会周是717777天,通法是26377天,差率是39。

这说的是计算方法,有点复杂。首先,你要把上元年的数字放进去,然后用章月(一个周期内的月份)乘以它。乘出来的结果,满章岁(一个周期内的年份)的部分就是积月,剩下的就是闰余。如果闰余超过247,那这一年就是闰年。接下来,用月法(一个月的天数)乘以积月,满日法(一天的刻度)的部分就是积日,剩下的就是小余。用60减去积日,剩下的就是大余。用天干地支纪年法(甲子)表示大余,这个大余就是你所求年份的十一月朔日(初一)。如果小余超过1849,那么这个月就是大月。要算下一个月的初一,就在大余里加上29,在小余里加上290。如果小余超过日法,就从大余里减去,然后用天干地支纪年法表示,这就是下一个月的初一了。 要算弦望(农历十五和廿三),就在朔日的大余里加7,小余里加1570,小分加1。如果小分超过4,就从小余里减去,小余超过日法就从大余里减去,然后用天干地支纪年法表示,这就是上弦日了。依次类推,就能算出望日、下弦日和下个月的初一了。

推算闰月的方法是这样的:用闰余减去章岁,剩下的如果能被闰法(一个闰月的天数)整除,就能得到一个闰月,用天干地支纪年法表示,这就是闰月的位置。闰月有进有退,以没有中气(二十四节气中的一个)为准。

二十四节气的推算方法:把上元年的数字放进去,然后用余数乘以它,满纪法(一个周期的天数)的部分就是积日,剩下的就是小余。用60减去积日,剩下的就是大余。用天干地支纪年法表示大余,这就是十一月冬至日。要算下一个节气,就在大余里加15,小余里加8626,小分加5。如果小分超过6,就从小余里减去,小余超过纪法就从大余里减去,然后用天干地支纪年法表示,这就是下一个节气日了。要算土用事(一种农历日期),就在冬至的大余里加27,小余里加15528,这就是季冬的土用事日。再加91在大余里,加12270在小余里,就是下一个土用事日了。

推算日食的方法:用90乘以冬至的小余,然后减去没分(日食的刻度),能被没法(日食的周期)整除的部分就是日食的天数,剩下的就是日余。用天干地支纪年法表示日数,这就是日食日。要算下一次日食,就在日数里加69,日余里加34442。如果日余超过没法,就从日数里减去,这就是下一次日食日了。日余用尽就表示日食结束。

这段文字描述的是古代天文计算的方法,看起来相当复杂。让我们一句一句地用现代口语解释一下。

首先是“推日所在度术”,这段讲的是怎么计算太阳每天的位置。 “以纪法乘朔积日为度实,周天去之,余满纪法为积度,不尽为度余,命以虚一,次宿除之,算外,天正十一月朔夜半日所在度也。” 这段话的意思是:用某种固定的方法(纪法)乘以从朔日(农历初一)开始的天数,得到一个数值(度实),再减去一周天(360度),剩下的数值(度余)如果超过了纪法数值,就作为积度,不够就作为度余。然后用一个虚数(虚一)进行某种运算(次宿除之),最终算出来的结果,就是天正十一月(农历十一月)初一晚上半夜太阳的位置。

接下来是计算下一个月的太阳位置。“求次月,大月加度三十,小月加度二十九,入虚去度分。” 意思是:要计算下一个月的太阳位置,大月就加上30度,小月就加上29度,再进行某种修正(入虚去度分)。 然后是计算太阳每天的运行度数。“求行分,以小分法除度余,所得为行分,不尽为小分。小分满法从行分,行分满法从度。” 这段的意思是:用某种方法(小分法)去除前面算出来的度余,得到每天太阳运行的度数(行分),不够一个单位的余数就是小分。小分积累到一定程度就加到行分里,行分积累到一定程度就加到度数里。最后,计算每天的太阳位置,“求次日,加一度。入虚去行分六,小分百四十七。” 就是说,计算下一天的太阳位置,只需要加上一度,再进行一些修正(入虚去行分六,小分百四十七)。

接下来是“推月所在度术”,这段讲的是计算月亮每天的位置。“以朔小余乘百二十四为度余。又以朔小余乘八百六十为微分。微分满月法从度余,度余满纪法为度,以减朔夜半日所在,则月所在度。” 这段的意思是:用初一月亮的剩余度数(朔小余)乘以124得到度余,再乘以860得到微分。微分积累到一定程度就加到度余里,度余积累到一定程度就变成度数,最后用这个度数减去初一晚上半夜月亮的位置,就能得到月亮的当前位置。

计算下个月月亮的位置。“求次月,大月加度三十五,度余三万一千八百三十四,微分七万七千九百六十七,小月加度二十二,度余万七千二百六十一,微分六万三千七百三十六,入虚去度分也。” 意思是:计算下个月月亮的位置,大月就加上35度,度余加上31834,微分加上77967;小月就加上22度,度余加上17261,微分加上63736,然后进行一些修正(入虚去度分)。

最后是“迟疾历”,这是一个表格,记录了月亮每天运行的度数以及一些修正值,反映了月亮运行速度的快慢变化。“月行度 损益率 盈缩积分 差法” 这应该是表格的标题,表示月亮每天运行的度数、速度变化率、累积的盈亏数值以及某种差值计算方法。表格中每一行都对应着月亮运行的某一天,详细列出了具体的数值。 这部分内容比较复杂,需要结合具体的算法才能理解。 总而言之,整段文字描述的是古代的一种天文计算方法,用于推算太阳和月亮每天的位置。 其计算方法复杂,需要一定的专业知识才能理解。

十二日,就是农历十一月十二,减少六十,盈余四百六十六万三千一百,合计四四三七。 简单来说,这天算出来的某个数值是四千四百三十七。

十三日,农历十一月十三,减少六十五,盈余三百九万三千二,合计四四○三。 这天算出来的数值是四千四百零三。

十四日,农历十一月十四,减少七十,盈余一百三十八万三千五百八十,合计四三六九。 这天是四千三百六十九。

十五日,农历十一月十五,增加六十七,减少四十五万七千六十九,合计四三六八。 这天算出来的数值是四千三百六十八。

十六日,农历十一月十六,增加六十二,减少二百二十三万七百五十五,合计四四二○。 这天是四千四百二十。

十七日,农历十一月十七,增加五十五,减少三百八十七万五百一十四,合计四四七一。 这天是四千四百七十一。

十八日,农历十一月十八,增加四十四,减少五百三十万九千三百八十五,合计四五三九。 这天是四千五百三十九。

十九日,农历十一月十九,增加三十二,减少六百四十八万四百四,合计四六二四。 这天是四千六百二十四。

二十日,农历十一月二十,增加十九,减少七百三十一万六千六百八,合计四七○九。 这天是四千七百零九。

二十一日,农历十一月二十一,增加四,减少七百八十一万七千九百九十六,合计四八一一。 这天是四千八百一十一。

二十二日,农历十一月二十二,减少十一,减少七百九十一万七千六百七,合计四九一三。 这天是四千九百一十三。

二十三日,农历十一月二十三,减少二十七,减少七百六十一万五千四百四十,合计五○一五。 这天是五千零一十五。

二十四日,农历十一月二十四,减少三十九,减少六百九十万一千四百九十五,合计五一○○。 这天是五千一百。

二十五日,农历十一月二十五,减少五十二,减少五百八十七万二千七百三十五,合计五一八五。 这天是五千一百八十五。

二十六日,农历十一月二十六,减少六十二,减少四百四十九万九千一百五十九,合计五二五三。 这天是五千二百五十三。

二十七日,农历十一月二十七,减少六十七,减少二百八十五万七千七百三十二,合计五二八七。 这天是五千二百八十七。

二十八日,农历十一月二十八,减少七十四,减少一百八万二千三百七十九,合计五三二一。 这天是五千三百二十一。

接下来是计算方法的说明:用通常的方法,将朔日(农历每月初一)的数值乘以经过的天数,得到一个中间结果,再用这个中间结果减去一个周期的数值,剩下的数值,如果能被通常的方法整除,商就是天数,余数就是剩余的天数。 计算天数的时候,要从农历十一月朔日(初一)的半夜开始算。

算下一个月的天数,大月加两天,小月加一天,每天的剩余数值都是一万一千七百四十六。 如果历法已经计算了二十七天,剩余数值是一万四千六百三十一,就要减去这个数值。

先算第二天,再加一天。算出当天在历法中的确切位置:从午夜开始,用剩余的天数乘以损益率,然后根据盈亏进行积分,如果比例一致,所得满纪法就是度数,不够就是度数的余数,用盈数加或亏数减,把度数和余数加起来就是确切的度数。如果盈数满了或亏数不足,就用纪法往前或往后推。计算度数的刻度也用同样的方法。算第二天,根据当天早晚的情况加减,多余的刻度也用同样的方法处理。

阴阳历的损益率和相应的数值如下:

第一天,加16;第二天,加15(累计31);第三天,加14(累计45);第四天,加12(累计57);第五天,加9(累计66);第六天,加5(累计71);第七天,加1(累计72);第八天,减2(累计70);第九天,减6(累计64);第十天,减10(累计54);第十一天,减13(累计41);第十二天,减15(累计26);第十三天,减16(累计10);第十四天,减16(累计-6)。

把通实数用来计算周天,不够358888.5的,就作为朔日进入阳历的刻度;够了就减去,作为朔日进入阴历的刻度。每满一个周天算作一天,不够的算作日余,记在日算之外,比如天正十一月朔日午夜进入历法计算。

算下个月,大月加两天,小月加一天,日余都是2779。历法满13天,日余15987.5就减去。阳历完了进入阴历,阴历完了进入阳历。算第二天,加一天。算朔望的差值,用229乘以朔日的余数,满330就作为日余,不够就乘以2作为小分,这就是朔日的差值。加14天,日余是21186,小分是125。小分满660就从日余里减去,日余满一个周天就作为一天,这就是望日的差值。再加一天,就是下个月的朔日了。

算合朔月食:把朔望日午夜进入阴阳历的日数和余数记下来,有小数就舍去,加上小分330,小分满660就从日余里减去,日余满一个周天就作为一天,满一个历法周期就减去。记在日算之外,这就是朔望加时进入历法。朔望加时进入历法一天,日余是4198,小分是428以下,12天后,日余是11788,小分是481以上,朔日就交会,望日就月食。

咱们先算算朔月食的大小余。先把差的天数加上夜半入迟疾历的余数,如果日数满了,就按照日法算,然后把朔望加时入历的余数乘以损益率,再用损益盈缩积分的方法算出来,跟差法一样,最后把盈减缩加到本朔望小余上,就得到定小余了。如果超过了法定值,就用日法往前推;如果不够,就往后推。

接下来算朔月食的加时。把定小余乘以十二,如果满了日法就得到一辰,记作子,写在算盘外面,这就是加时所在的辰。如果有余数,乘以四,满了日法,一为少,二为半,三为太。如果还有余数,乘以三,满了日法,一为强。强加少为少强,加半为半强,加太为太强。得二者为少弱,加上太为一辰弱,用前面的辰来命名。

然后算月亮离开太阳的度数。把阴阳历的余数乘以损益率,按照通法算出来,用损益的总数来确定,把定数除以十二得到度数,不够除尽的,三之一为少、半、太。如果还不够除尽,一为强,二为少弱,这就是月亮离开太阳的度数了。阳历在表,阴历在里。(表略)

算昏明中星的位置,把度数加上夜半日所在的位置,就是中星的度数了。

咱们再算算五星的运行。木星的率是:一千五百七十五万三千八十二;火星的率是:三千八十万四千一百九十六;土星的率是:一千四百九十三万三百五十四;金星的率是:二千三百六万一十四;水星的率是:四百五十七万六千二百四。算五星的时候,把度数分别除以它们的率,剩下的数再减去率,剩下的数按照纪法算出来,就是入岁日,不够除尽的就是日余。记在算盘外面,天正朔那天,星和日就合了。

算星合的度数,把入岁日和余数加上天正朔日的度数和余数,满了纪法就从度数里减去,记作虚一,写在算盘外面,这就是星合的位置。算星见日,把伏日和余数加上星合日和余数,余数满了纪法就从日数里减去,方法跟前面一样,就是星见日。算星见度,把伏度和余数加上星合度和余数,余数满了纪法就从度数里减去,然后从虚数里减去度数和分数,方法跟前面一样,就是星见度。五星运行的方法是:用小分法去除度数的余数,得到的是行分,不够除尽的是小分,加上日数,满了法定值就从度数里减去,剩下的就按之前的算,逆行就减去,伏日不够除尽的度数。从虚数里减去行分六,小分一百四十七;逆行出虚,就加上。

木星啊,刚开始跟太阳在一起,然后就潜伏起来了,过了十六天,走了17832度,走了两圈,还剩37554度,早上在东方看到了它。接下来,它每天走四分之一度,走了112天(走了19度又11分)。然后又停留了28天。反过来走,每天走三分之一度,走了86天(退了11度又5分)。又停留了28天。然后又开始往前走,每天走四分之一度,走了112天,傍晚在西方看不见它了。剩下的度数跟一开始一样。这样一整年,一共是398天,走了35664度,一共走了33圈,还剩25215度。

火星呢,刚开始也跟太阳在一起,然后就潜伏起来了,过了72天,走了680度,走了55圈,还剩28865度,早上在东方看到了它。接下来,它走得很快,每天走十七分之一度,走了92天(走了68度)。然后速度慢了一点,每天走十四分之一度,走了92天(走了56度)。再然后速度更慢了,每天走九分之一度,走了92天(走了36度)。然后停留了10天。反过来走,每天走六分之一度,走了64天(退了16度又16分)。又停留了10天。然后又开始往前走,速度慢,每天走九分之一度,走了92天。然后速度快了一点,每天走十四分之一度,走了92天。再然后速度最快,每天走十七分之一度,走了92天,傍晚在西方看不见它了,剩下的度数跟一开始一样。这样一整年,一共是780天,走了1216度,一共走了414圈,还剩3258度。减去一圈,最终走了49度,还剩1989度。

土星啊,刚开始也跟太阳在一起,然后就潜伏起来了,过了17天,走了1378度,走了1圈,还剩19333度,早上在东方看到了它。然后往前走,每天走二分之一度,走了84天(走了7度又7分)。停留了33天。然后反过来走,每天走一分之一度,走了110天(退了4度又18分)。又停留了33天。然后又开始往前走,每天走二分之一度,走了84天,傍晚在西方看不见它了,剩下的度数跟一开始一样。这样一整年,一共是378天,走了2756度,一共走了12圈,还剩31798度。

金星一开始和太阳在一起,然后隐没,39天后,剩余度数是38126度,运行了49度,剩余度数还是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度,行星运行情况也如此。

水星一开始和太阳在一起,然后隐没,14天后,剩余度数是37115度,运行了30度,剩余度数还是37115度,傍晚出现在西方。接着,它快速运行,每天运行1度6分,23天后(运行了29度)。速度慢,每天运行20分,8天后(运行了6度22分)。停留2天。速度慢,每天运行11分,2天后(后退了22分)。傍晚隐没在西方。隐没8天,后退8度,然后和太阳重合。再过8天,后退8度,早晨出现在东方。逆行,每天运行11分,2天。停留2天。接着,速度慢,每天运行20分,8天。速度快,每天运行1度6分,23天,早晨隐没在东方,剩余度数和最初一样。一个周期结束,一共115天,剩余度数是34739度,行星运行情况如此。一次会合,57天,剩余度数是37115度,行星运行情况也如此。

上元之岁,岁在甲子,天正甲子朔夜半冬至,日月五星,聚于虚度之初,阴阳迟疾,并自此始。

元朝世祖时期,朝廷下令让内外官员广泛讨论这件事。当时人们很少有人懂历法,最终也没能得出什么一致的结论。只有太子府旅贲中郎将戴法兴提出了自己的看法,他认为:

哎,这天文历法的事儿,可不是随便就能搞明白的。要是不仔细研究推算,弄清楚日影的变化规律,怎么可能推翻旧的,建立新的历法呢?我仔细看了案冲的意见,发现好多地方都有问题,就斗胆提点自己的看法,逐条说说。

案冲的新历法说,“今年冬至的位置,年年都稍微有点偏差”。我觉得吧,冬至和夏至,南北极点的日照,太阳的位置是固定的,星星的位置也不变。古代的历法,冬至都在建星(二十八宿之一)。战国时期,国家动荡,史官们记录混乱,到了汉初,节气记录也不准确了。后来有人观察,发现冬至在南斗二十二度,元和年间用的历法,和古历法是一致的。一直到景初年间,都没什么差错。《尚书》上说:“日头短了,星宿昴宿出现,就表示是仲冬了。” 只要按照月亮运行来确定四季,那么中宿(二十八宿中的某一宿)就总是在卫阳(二十八宿中的某一宿),羲和(古代传说中的太阳和月亮之神)用来确定时间的办法,就是取其万年不变的规律。

案冲却说唐代冬至在现在这星宿的左边五十多度,就随便加减度数,乱改天上的星宿位置。他定的这个位置,差不多差了半个周期,也就是四十五年九月,就要移动一度。你看《诗经》里“七月流火”,那是夏天正值建申(二十八宿之一)的时候。“定之方中”,又是小雪的时候。如果冬至的计算有误差,那么《诗经·豳风·七月》里说的“七月流火”,日影长一尺五寸;楚辞里说的日影长五十三刻,那可就全乱套了!孔子说过:“我听说过,火隐没之后,冬眠的动物才都结束冬眠。现在火还西流呢,这司历官算错了!” 要是按案冲的说法,那星星的位置就不固定了,封地的大小也不准确了。

名字的含义,古今肯定不一样,古代的典章制度,各个时代也不一样。尧帝时期的开、闭(指某种天文现象),现在就变成了建、除(指某种天文现象)。现在说的寿星,就是周朝时说的鹑尾(二十八宿之一),现在的东壁(二十八宿之一),已经不是玄武(二十八宿之一),轸星(二十八宿之一)也归属苍龙了。这简直是胡乱改动天象,太离谱了!

话说这冲之啊,又改了历法,一共改了391年,其中有144个闰年。我,法兴,觉得这不对劲儿。你看,太阳每天运行的速度不一样,所以斗柄指向的位置也不一样。古人制定历法,有个标准,一年十九年七闰,虽然有时会多有时会少,但这方法一直用得好好的,没必要改啊!冲之这改法,把闰年给削减了,算来算去,一百三十九年二月,就少了一天;七千四百二十九年,就少了一个闰年。日子少了,时间就提前了;闰年少了,事情就乱套了。我听说,时间是用来安排事情的,事情是用来养活人的,这可是关系到老百姓生活的大事,历法得先弄准才行。冲之这轻率的改动,我担心会有大问题。

冲之还说,上元日(一年开始的日子)的度数要从虚宿开始算,说虚宿在北方的正中央。我法兴又要说他了!冲之既然说冬至点有岁差(位置变化),又说虚宿在正北,这不是舍本逐末吗?这根本说不通!天上星星的位置,不都是靠太阳来确定的吗?地上人们辨别方向,不都是靠北斗七星吗?就算冬至点在虚宿,那黄道(太阳运行的路径)就离得更远了,东北方向应该对应黄钟这个音律,室宿、壁宿应该对应玄枵这个音律,虚宿怎么可能还在正北呢?要是冬至点老是变,而星宿的位置不变,北斗星的位置不变,音律也不变,那七曜(日月五星)的位置就无法精确计算了,时间也无法准确记录了,五行、六律的位置又该如何确定呢?

冲之还规定上元年的干支是甲子年。我法兴觉得吧,定上元年、定纪元,各有各的道理,有的根据图谶(预言书),有的根据当时的实际情况。冲之说,“以前的历法说法不一,没个准儿”。可是,黄帝时代是辛卯年,日月运行都很准;颛顼时代是乙卯年,四季都很准;景初年是壬辰年,月底都没有偏差;元嘉年是庚辰年,月初都没有偏差,这些历法难道不都是符合天道的吗?冲之偏偏要选甲子年,这简直是强求天意啊!

首先,冲之这个人,还让日月和五颗行星(日月五纬)的运行速度,快慢等等,都以上元为起始点。我的看法是:要是能算准交会的起始时间(交会之元),那么日食发生的时间就能预测出来,至于运行速度的快慢变化,可不是一般人能算出来的。以前贾逵大概能看出一点儿差别,刘洪还专门写了本书来研究这个。但是,关于运行疏密程度的具体数字,谁也没能完全搞清楚。再说,这五颗行星的位置,有时候会变化,比如岁星在轸宿的时候,看起来比其他七颗星还亮,术士们已经能根据这个推算出它现在的运行情况了,那么过去和将来的运行情况,当然也能推算出来了。《景初历》之所以要记录起始点和误差,《元嘉历》又另外设立后元,都是为了在实际应用中简化计算,而不是故意增加计算的复杂性。冲之却违背天理去随意更改历法,还弄出一些方法来实现自己的想法,我认为这是制定历法的大错特错。

我的看法是:太阳有八条运行轨迹,每条轨迹都形成一个周期,月亮只有一条轨迹,加起来一共九条轨迹,左边运行快,右边运行慢,快慢相差一倍半,它们最终的运行规律应该是一致的,所以太阳的运行周期数应该相同。冲之算出来的回归年和会合年相差九千四十天,阴阳历的周期差大约七十九周多一点儿,快慢差距还不到一圈。这种情况就应该缩短盈余的部分,该减的减,该增的增。

冲之按照我的说法,很难反驳……

我年轻的时候,就对数学和天文很感兴趣,广泛学习古代和现代的典籍,深入研究那些深奥的知识。从古代的典籍到现代的文献,我都仔细研究过,认真地验证过他们的计算方法。我绞尽脑汁地思考,仔细分析各种计算方法的优缺点。比如,以前关于圆周率的计算有错误,张衡虽然也提到了,却没有改正;汉代的度量衡铭文,刘歆篡改了数据,这些都是古代数学家们比较大的失误。《乾象历》和《景初历》中关于日月运行的计算,并不是因为观测不精确,而是计算方法出现了错误,这也是历法家们很大的失误。郑玄、阚泽、王蕃、刘徽这些人,虽然也精通天文历法,但他们的计算结果也经常出现差错。我以前利用业余时间,纠正了他们很多错误,我的论证清晰明了,很容易理解。我这样做,只是因为我比较自信,并不是故意贬低古人。

我修正了何承天历法中的一些错误,比如二至点的位置、闰月的设置、五星的运行轨迹等等,这些都是以前历法中存在的问题,我已经在新的历法中进行了修正。我从根本上解决了这些问题,去除了冗余的部分,使新的历法既符合天文观测,又符合实际应用。可是,他们却对我进行批评,真是太可惜了!法兴提出了六点质疑,但这些质疑都没有触及到问题的核心。我逐条解释如下:

第一,关于岁差,以前的方法都忽略了这一点,我根据史书上的记载纠正了这个数值,但法兴却用《诗经》和《尚书》来反驳我,他的说法完全是错误的。第二,我修正了日晷的计算方法,法兴对此无法反驳,只是说“恐怕不是简单的考虑,可以随意更改”。第三,关于方程的修正,我并没有使用这种方法,他们误解了我的意图,故意贬低我。第四,关于历法中元年的甲子纪年,我的方法清晰明了,而他们的说法却显得牵强附会。第五,我的历法中七曜的起始年份都是一样的,他们找不到任何可以攻击的地方,却又说“这不是普通人能够计算出来的”。第六,关于阴阳历的迟疾问题,法兴并没有理解,他错误地认为阴阳历的日数应该相同。

总而言之,他们的质疑要么是引用错误的观点来攻击我,要么就是毫无理由地否定我,他们并没有提出任何有建设性的意见,只是出于个人偏见。我在这里逐条解释,并用史料来佐证我的观点。希望您能够明察秋毫,了解我的想法。

法兴说:“你看啊,冬至和夏至,南北极点,太阳运行的度数是固定的,而星宿的位置也没有变化。所以古代的冬至历法,都把冬至定在建星(二十八宿之一)上。”

冲之接着说:周朝和汉朝之间,搞天文历法的那些人,很多都失业了,就开始搞一些旁门左道,编造各种各样的图谶和纬书,内容繁杂,有的借用帝王的名号来抬高自己的说法,有的假托圣贤的名义来增加神秘感。所以那些预言和谶纬大多都是假的,桓谭就认为它们是伪造的;古代的历法版本很多,而且相互矛盾,杜预也怀疑它们的真实性。你看《五纪论》里说,黄帝的历法就有四种说法,颛顼、夏、周朝的历法也各有两种说法,各种说法互相矛盾,让人眼花缭乱,谁又能知道哪个是对的呢?这就是古代历法值得怀疑的第一个理由。

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

古代的六种历法,都跟《四分历》差不多,《四分历》这种方法,时间长了就会跟实际情况有偏差。用日食来检验,每过三百年就会差一天。用古代的历法来推算现在,偏差大的,朔日(每月初一)会比实际情况晚两天多。以此类推,古代的历法,大多是汉初或者周末时期编造的,不可能更早。而且反过来推算《春秋》的日食记录,朔日都在实际情况的前面,这就明确证明了这些历法不可能是三代以前的了,这是古代历法值得怀疑的第六个理由。你看《律历志》记载,西汉的冬至,太阳位于斗宿和牛宿之间,度数在建星附近,两者位置相近。如果不是帝王亲自制定,那一定是仪器或者漏刻出了问题,怎么可能精确到毫厘不差呢?所以说,用建星来证明古代历法,是站不住脚的。

法兴说:“战国时期天文历法发展混乱,史官记录也失准,到了汉初,节气也测算不准。后来有人发现,南斗二十二度的位置与古代历法相符,元和年间的历法沿用了这个方法,和古代历法一致,一直到景初年间都没什么错误。” 冲之反驳道:古代天文历法说法很多,而且很多细节都没记载清楚。秦朝用的乙卯历,肯定在当时有效,所以他的说法还是可信的。汉武帝时期重新制定历法,考订仔细,仪器也精密,这些都记载在史书里。测算星象,推算度数,理论上不会有太大偏差。现在这些人反对的,都是不了解实际情况,凭空捏造的。他们一会儿说这个不对,一会儿说那个不对,根本不是什么正经说法,还故意违背古法,胡乱指责,只抓住一点不放,不如兼顾古今之长。景初历法实际上在五星的计算上出了错,现在已经过去很久了,日历也早就推移了。它只是粗略地计算朔望,根本不去仔细观察验证,所以日影、漏刻、天明等都沿用元和历法,二分二至的景象也不调整,日行度数略有偏差,当然会出错啦。

法兴说:“《尚书》上说‘日短星昴,以正仲冬’,直接用月亮推算四季,那么中宿(二十八宿中的某一宿)永远在卫阳(二十八宿之一)附近。羲和(古代传说中的天文官)制定历法,就是取其万年不变的道理。”冲之反驳道: 《尚书》用这四颗星在黄昏时出现来确定冬至,是站在君王南面而立的角度说的。而且南北的正方向很容易确定,从星象的运行规律来看,中天就是天球的极点。古代学者对这一点的解释都一致。法兴却认为《尚书》说的四颗星都在卫阳附近,都在巳地(二十八宿中的某一地),这方向就错了,不是初始的方位,他曲解经文,来强词夺理,违背经文本意,这是很严重的错误。把午(二十八宿中的某一地)说成巳,午上又不是没有星星。一定要以中宿为准,其他的星宿难道就不能用来校正时间吗?如果说要同时考虑七列星宿,那么觜参星(二十八宿中的两宿)还没出现,就不能说了;昴星虽然出现了,应该说它还没完全显现;奎娄星(二十八宿中的两宿)已经出现了,也不能说它还没出现……这样说下去,那还有什么依据呢?如果说中宿的推算方法不对,那应该仔细检查经书的原文,直接说“星昴”,而不是说“卫阳”,卫阳本身就没有明显的意义,这说法从何而来?如果道理站不住脚,那只能是牵强附会,曾泉、桑野(地名,指古代天文观测点)都是明证,冬至到底在什么时候,反复推算多次,我真是深深地叹息啊!

法兴说:“咱们这套历法,跟实际情况差不多总是差半度,所以每四十五年九月就要调整一次。” 冲之反驳说:“法兴你说的那个《元和历》的每日度数,我承认是对的。但是你参考的古代历法,说建星(指二十八宿中的建星)的位置在哪儿,现在考证一下,我发现冬至的时候太阳也在这个星宿附近。可斗宿二十二度却一点儿证据都没有,你却凭空说我的历法偏差了半度,这让我实在想不通!”

他还说:“另外,年数的剩余部分是十一个月,你却说是九月,计算结果总是对不上,都是这种问题。月亮圆的时候发生月食,一定是在日、月相对的时候。我们可以用月食来检验太阳的位置,从而判断历法的疏密程度。你看太史令的记录,元嘉十三年十二月十六日半夜,月食遮住了整个月亮,月亮在鬼宿四度,根据日、月相对的原理推算,太阳应该在牛宿六度。可是法兴却说:‘在女宿七度’。”

“又比如元嘉十四年五月十五日半夜,月食遮住了整个月亮,月亮在斗宿二十六度,根据日、月相对的原理推算,太阳应该在井宿三十度。可是法兴却说:‘太阳在柳宿二度’。再比如元嘉二十八年八月十五日半夜,发生了月食,月亮在奎宿十一度,根据日、月相对的原理推算,太阳应该在角宿二度。可是法兴却说:‘太阳在角宿十二度’。还有大明三年九月十五日半夜,月食遮住了整个月亮,月亮在胃宿的末尾,根据日、月相对的原理推算,太阳应该在氐宿十二度。可是法兴却说:‘太阳在心宿二度’。”

“这四次月食,都跟我算的完全一样,一点儿差错都没有,可是法兴你算的,每次都差十度左右,太阳的位置完全不对,这差别太明显了!所以说,天象的变化是有规律的,我们应该根据实际情况来制定历法,事实摆在眼前,怎么能相信古代的历法,而怀疑现在的历法呢?”

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

冲之回怼道:我仔细研究了您这三点意见,全都是错的!《诗经》里说的“流火”,大概只是概括性地指火星西移到某个位置,用来表示天气转凉的征兆。这里的“流”,可不是刚开始移动的意思。按照您的说法,冬至太阳的位置在斗宿二十二度,那火星应该在大暑之前就出现,怎么可能跟建申(农历七月)挨着呢?这纯粹是您自己钻牛角尖,可不是什么纠正错误。再说,《夏小正》里记载:“五月黄昏,大火在正中。”这难道是在卫阳(古代地名)吗?您还说我制定的历法,跟楚宫的日晷记录相冲突,说楚宫的记录是在九月初。但是根据《诗经》的传注和笺注,‘定之方中’指的是房屋正中,也就是正南方向。所以说,正南方向的太阳高度,应该在室宿八度左右。我仔细推算过,元年立冬后第四天,太阳高度在黄昏时分达到这个位置,这正是十月初,根本不是寒露节气啊!您之所以会犯这种错误,大概是因为把周朝的历法当成了尧舜时代的历法,两者之间相差了五十度,所以才导致了这种谬误。至于说小雪节气,那完全是您自己臆断的,根本没有明确的文献记载可以佐证。

法兴说:“孔子说过:‘我听说过,火隐伏之后,蛰伏的动物就都出来了。’现在火还西流,司历官算错了。就像冲你算错了一样,星宿的位置就不固定了,卦象的方向就错了,名称的正误,古今必然不同,典籍文献的记载,时代之间也不相通。尧帝时代的开、闭,现在变成了建、除,现在的寿星,就是周代的鹑尾星。现在东壁星,已经不是玄武星了,轸宿星却归属苍龙,这简直是诬蔑天象,违背经书,才会造成这样的局面。”

冲回答说:“我认为北极星位于中央,而其他星宿都围绕着它运行,星宿形态各异,阴阳属性分明,所以各种星宿都各就各位,水星和火星各守其位,白色和青色星宿各占一方,这样东西方向就能确定,并不是根据太阳所在的位置来确定星宿名称的。怎么证明呢?阳爻初九,气始于正北,玄武七宿,虚宿当在子位。如果用浑天仪辨别方向,以太阳为准,冬至时太阳应该在玄枵的位置;但是现在南极星却在东维,违背了星象运行的规律,这道理怎么讲得通呢?如果南北方向以冬夏来确定,那么卯酉方向就以生杀来确定名称,怎么能说春季运行的星象是义方,秋季运行的星象是仁域呢?名称与道理相悖,反差如此之大!因此可以看出,天象是以星宿来划分方向的,而不是根据四季来划分,星宿环绕运行,太阳并不总是沿着固定的轨道运行。至于说某些星宿隐伏不见,史书上常常用它来推断时间的,是因为历法难以精确,而天象变化却容易观察,所以历代都根据当时的实际情况,制定简便易行的历法。这就好比夏朝的礼仪没有通行到商朝,商朝的《濩》乐舞也无法沿袭夏朝的《韶》乐舞一样,天人之间的道理也是这样,有所相同,有所不同,所以各种技艺的兴起,也随着时代而变化。”

“月份的名称和星宿的运行,应该以星宿运行的实际情况为依据,名称应该符合实际情况,而不是仅仅根据斗柄所指的方向来确定。最近查阅汉朝的资料,已经偏差了半个星次,按照斗柄所指的时间来推算,其效果又在哪里呢?有些说法并非经书训诂的解释,却以此来建立理论,难道是星象预测有很多虚假之处,夹杂着许多伪造的说辞吗?星宿的名称应该符合星宿的实际位置,虽然至点的位置会发生变化,但是星宿的位置却不会改变,怎么能说龙星和火星的位置互换,金星和水星的位置混乱呢?名称与实际情况不符的批评,恐怕还没有仔细研究过。比如东壁星不是玄武星,轸宿星属于苍龙,根据观测日影来推算时间,实际效果都是一样的。《元嘉历法》中,寿星最初也在翼宿的范围,参阅晋朝的注释,有很多明显的证据。天象的变化,一百多年就有了差异,如果大家能够充分辩论,证明南极星不是在冬至的时候,观测到的位置也不是冲的位置,那么这种说法才能成立。如果太阳的位置不断变化,那就没有必要反复质疑了,这就是我编制历法的有力证据,不是那些反对者应该提出的问题。我所坚持的,必定依据经史典籍,远溯唐朝的典章制度,近征汉朝的书籍文献,对那些谶纬和零碎的记载,我不敢采用,我认为这是遵循经书的论述。月蚀可以检验日度,事实证明是正确的,史书的注释有详细的论述,文献保存在禁宫里,这也是符合天象规律的论述。《尧典》中记载的四星,都在卫阳的位置,现在太阳的位置,距离元和年间已经相差很远,说这是诬蔑天象,违背经书,正是这个意思。”

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

冲之说:根据《后汉书》和《乾象说》,《四分历法》虽然章法和仪器是在元和年间创立的,但是日晷的各种数据是在嘉平三年确定的。《四分志》记载,立冬正午影子长一丈,立春正午影子长九尺六寸。冬至那天,太阳到达南极点,日晷最长,两个节气离冬至的天数相同,那么正午影长应该相等,但实际上立冬比立春长四寸,这是历法和实际观测结果不符的证据。两个节气正午影子相差九分半弱,增减均匀,几乎没有盈亏。按照这个比例计算,两个节气各推后二日十二刻,那么立冬的影子会更短,立春的影子会更长,两者相差两寸,两个节气的正午影子都变成九尺八寸了。这才是立冬、立春正日的影子长度。以此类推,历法中冬至的日期,实际上也应该推后二日十二刻。嘉平三年,当时的历法规定冬至是丁丑日,太阳正午到达天顶。减去二日十二刻,就应该是乙亥日冬至,太阳在午夜之后三十八刻到达天顶。

我又亲自测量日影,精确到分寸,铜表坚固,不受潮湿影响,日影清晰明亮,细微之处都看得清清楚楚。根据大明五年十月十日测得的日影是一丈七寸七分半,十一月二十五日是一丈八寸一分,二十六日是一丈七寸五分,取中间值,那么冬至应该在十一月三日。为了确定冬至的具体时间,我用前两天的日影长度相减,得到一天的差值。用这个差值乘以一百刻,再除以差值,算出冬至应该在午夜之后三十一刻,比《元嘉历》推算的日期晚一天,这才是天数的正确值。我检验了全年的数据,发现减少的数值都相同,不同年份进行比较,远近都符合规律。我根据这些验证结果,修正了历法章法。现在用我的历法推算,时间和以前一样,我认为非常精确,可以永久沿用。

研究古代历法,都和《四分历法》一样,《四分历法》使用久了就会和实际情况有偏差,每过三百年,朔日就会差一天。所以汉朝四百年,计算的日期就和实际情况有偏差。魏朝以来,就改变了这种方法,没有人反对,因为它确实符合天象。十九年一个章,它的误差更大,和以前的算法一样,没有参考经典文献。而法兴说这种方法自古以来就如此,数字不能改变。如果说古代方法虽然粗糙,但应该一直沿用,那这种谬论就成立了,那么法兴还想在今天使用《四分历法》,这合理吗?我无法理解。如果说我现在的改革违反了常理,没有证据可以推翻我的方法。《元嘉历》的方法,减少了两个闰月,只是简单地沿用旧的粗略方法,所以前后不一致。至于舍弃盈余求取精确值,并没有违反道理。按照法兴的意思,比例不能改变,那么分秒就不能增减,沿用天象制定历法,反而会出错。节气早晚,应该按照《景初历》的算法,二至相差三天,以前也没觉得有什么不对,却说我的历法有误,知道日短会提前,却没想到增加月份会造成更大的误差。你没有看到天象的验证,怎么能判断历法的关键,百姓的根本,这显然不是随意的判断。法兴一开始说他完全了解日晷的变化,可以废除旧历法,制定新历法,又说日晷的数值有时长有时短,不能作为标准,前后矛盾,不知道他依据是什么。如果推算不准,天象的规律就会在心里消失,历法又是根据什么制定的呢?

从《春秋》以来一千多年,都是用日食来检验朔日,从来没有出现过错误,这是日行有恒的明确证据。而且我多年观察日影,仔细研究细微之处,以前验证的结果都完全一致,孟子说,一千年的日行,可以坐下来就推算出来,这话是真的。日子长短不一,我没有看到证据,空话贬低,我不害怕。

法兴这哥们儿说:“冲之你啊,一边说冬至点在岁差上,一边又说虚宿是北极的正中,这简直是舍本逐末,抓影子不抓本质,根本没说到点子上嘛!为啥这么说呢?天上只要有太阳,哪儿都亮堂堂的,咱们在地上用斗柄来辨别方向。就算冬至真的在虚宿,那黄道就离北极更远了,东北方向就该是黄钟宫的方位,室壁二宿就该是玄枵的方位了,虚宿怎么可能还是北极的正中呢?要是冬至点老是变来变去,但星宿的位置却不变,北极星的位置也变,但音律却还是老样子,那七政(日月五星)的运行规律就解释不通了,时间也无法用摄提法来计算了,五行和六律的位置就更没法确定了。”

冲之回怼道:你说的这些问题,我之前上报的奏折里已经解释得很清楚了。冬至点的位置确实会变化,虚宿也不是北极的正中,你说的那些一大堆理由,自己给自己制造混乱,都是你理解错了,根本不是我计算方法的问题。至于你说的“七政致齐”,实际上指的是天球仪,郑玄和王肃的解释已经很明白了,虽然还有其他说法,但那都不是真正的意思。

法兴说:“设立年号和纪年方法,各有各的侧重点,有的依据图谶上的记载,有的效仿当时的做法。冲之说‘各个氏族互相纠纷,难以确定其会合的年份’。可是,黄帝在辛卯年,日月运行正常;颛顼在乙卯年,四季运行无误;景初在壬辰年,日月运行没有偏差;元嘉在庚辰年,朔日没有错误。这些难道不是顺应天意吗?冲之坚持使用甲子纪年,可以说是为了合乎天意。”

冲之反驳道:历法应该注重实际效用,不能搞特殊化,那些附会图谶的解释,牵强附会的训诂,我并不认同。即使当时看起来很灵验,也不能长远适用,这也是我感到不安的地方。元朝的纪年方法,名称合理,符合天文规律。我不太明白辛卯年说的依据是什么,古代那些奇奇怪怪的说法,很多都记载在史书里了,他们只顾着名义,丢掉了实际,这大概不是考证古代典籍的正确方法吧。如果历法只适合一时一地,那就不可能长期使用。元朝的纪年方法,并非有固定的年份,现在用实际效用来证明它的正确性。夏朝、殷朝以前的史料,大多散失了,《春秋》和汉朝的史书,都记载了日食的发生时间,对朔日的记载也十分详尽准确,可以作为证据。我用我的历法进行核对,这些数字都完全吻合,确实没有虚报,遵循严密的规律,千年不变,即使是遥远的过去也能推算出来。我仔细查阅了以前的历法,错误很多,有的朔日差三天,有的节气差七天,没有听说过哪种历法能一直沿用到今天的。元朝是在乙丑年开始的,以前有人说这不是正朔,现在到了甲子年,大家又怀疑是凑巧,历史上从来没有无名年份的说法,那么推算之前的年份,又该从哪里入手呢?历法纪年的工作,快要停滞了。 既然要合乎规律,就必然有不合规律的地方,我希望听到明确的证据,来验证事情的真相。

法兴说:“这交会推算的根本方法,只要能算出日食发生的时间,就能知道日食发生的快慢,这可不是一般人能算出来的。以前贾逵大致能算出日食发生的误差,刘洪也粗略地总结了一些方法,但至于日食发生的疏密程度,没有人能彻底搞明白。再说,五颗行星的位置,有时会显得密集,有时又会显得稀疏,就像岁星在轸宿时,看起来超过了七个星宿,术士们根据推算的结果来确定现在的时间,那么过去和未来的时间,也就能推算出来了。《景初历》之所以要记录初始的误差,《元嘉历》又分别设置了后元,都是为了在实际应用中简化计算,并不是故意增加复杂性。而冲之你却违背天理,强行修改历法来满足自己的想法,我认为这是制定历法的重大错误。”

冲之说:日食发生的快慢,不是什么神鬼之事,是有迹可循,有规律可推算的,刘洪和贾逵都能做到,只要不断改进方法,就能算得更精确了。你刚才说“五颗行星的位置,有时会显得密集,有时又显得稀疏”,“岁星在轸宿时,看起来超过了七个星宿”,意思是说岁星每年移动一个星宿。实际上,岁星运行,每年都会经过一个星宿,绕天一周七次,就会超过一个星宿。用这种方法推算,历法已经发展到十种方法了,它们都能在同一时间得出相同的结果,史书上记载的和实际观测到的结果也一致。所以,岁星运行的规律是确定的,并不是随意移动的。如果仔细研究岁星运行的快慢变化,怎么可能总是快而没有慢呢?那些研究天文的人,一定要仔细分析、测量、推算,根据实际观测结果和史书的记载来验证。那些含糊不清、琐碎的言论,大多是虚假的,甘石的著作,互相矛盾。现在就因为一句话里的一个字有错误,就坚持偏见,否定正确的道理,我实在不能苟同。

从现在开始推算,各种方法都能得到相同的结果,只是《景初历》的两个误差,承袭了上元之后的结果,因为奇偶数不协调,所以结果不一致,所以才要设置前元和后元,来简化计算。提出建议,讨论问题,不应该标新立异,而是应该让实际效果来证明理论的正确性。从上古时代开始,各种历法计算方法都从头开始,这确实是历法研究的规律,没有理由批评;但是批评者认为这是错误的,而且是最大的错误。那么,《元嘉历》设置后元,虽然七个比率有所差异,但仍然能与甲子纪年、气朔终结相协调,这只是一个小小的错误。难道一定要虚构一个上元,假定为历法的开始,让岁数与名称不符,让日期与星宿不符,让闰月、朔日、月球运行的七个比率都不完整,才能算是完美的历法吗?制定历法应该符合实际情况,这是我所追求的;而违背天理来修改历法,我还没有看到有什么道理可以批评。

法兴说:“太阳一天运行八个单位,合起来就是一个周期;月亮运行一个周期,分成九个单位,太阳和月亮的运行速度,左边快右边慢,快慢程度相差一倍半,最终都要回到同一个点,所以太阳和月亮的运行次数应该相同。太阳和月亮会合的周期是九千四十年,阴阳运行的周期大约是七十九周,快慢相差不到一圈,所以应该根据盈亏的情况,进行增减调整。”

冲之说:“法兴的这个说法虽然很玄乎,没有根据,但还是可以查证的。按照太阳一天运行八个单位,月亮运行九个单位来比喻,月亮运行的轨道应该是一条固定的路线,围绕着天空运行,道理上不应该有变化。那么,太阳和月亮交汇的时候,应该有一个固定的位置,怎么可能会在斗宿或牛宿,同时出现在同一个度数呢?距离天极的距离应该相等,怎么能南北不固定呢?如果日月运行不是这样,那么‘太阳一天运行八个单位’的说法就是多余的了?‘左边快右边慢’这句话说得含糊不清,是‘快’和‘慢’相对而言?还是说舍弃‘快’就只有‘慢’?如果舍弃‘快’就只有‘慢’,那么在计算历法时,七天和二十一天就是这种情况。交汇和日食都应该发生在盈亏的极点,怎么能增减呢?如果‘快’和‘慢’是相对的,那么在交汇的冲点,就是快慢的开始,怎么能计算历法时,快慢程度忽深忽浅,相差一倍半呢?新旧历法都一样,又重复这句话,想说明什么呢?我查阅了历书,古今的历法都查阅了,从来没有听说过这种说法,它与旧有的标准相差甚远,也违背了天数,我实在是不理解。快慢和阴阳并不相互影响,所以交汇的时间会增加,进退不定,以前的历法已经记载很久了,前代的儒者也解释得很清楚了。而法兴却说太阳和月亮的运行次数应该相同。我认为提出这种说法的人没有理解其中的意思,谬误很明显,不需要多加辩论,既然说盈亏失准,又没有详细记载具体的数字,可能是他自己也怀疑自己的说法,所以就含糊其辞了吧?又用总数作为基准,应该互相推算其比例,法兴列出的两个数字都是错误的,可能是把八十误写成七十九,应该根据盈亏的情况,进行增减调整,这就是这篇文章的意思。总的来看他的说法,不仅说我的历法不精密,还说何承天的方法更加谬误。如果我的历法应该废除,那么何承天的方法就更不能用了。如果法兴的观点是正确的,那么就应该改革创新。日影最长的时候,月亮不一定是日冲,所有这些新的说法,一定有精妙的解释吧?”

法兴这个人很受世祖皇帝的宠爱,全国上下都怕他的权势。他一旦提出什么不同意见,大家都会跟着附和。只有中书舍人巢尚之敢于反驳他,坚持认为应该采用合适的办法。皇帝喜欢标新立异,又崇尚古法,想用法兴的新历法,那会儿是大明八年。所以打算等到第二年改元的时候,顺便也改历法。结果还没来得及实行,皇帝就驾崩了。

吴元年(朱元璋年号)十一月乙未日,也就是冬至那天,太史院使刘基带着手下高翼等人上交了《大统历》。朱元璋说:“古代都在年底颁布历法,太晚了。现在冬至颁布也不太好,应该在十月初一颁布,就这么定了!”洪武元年,朱元璋把太史院改成了司天监,还另外设立了一个回回司天监(专门负责伊斯兰教历法)。他下令召集元朝的太史院使张佑、回回司天太监黑的儿等等共十四个人,后来又召集了回回司天台的官员郑阿里等等十一个人到京城,一起讨论历法。三年后,他又把司天监改成了钦天监,设立了四个科:天文科、漏刻科、《大统历》科、《回回历》科,由监正和少监来领导。每年都要编制《大统民历》、《御览月令历》、《七政躔度历》、《六壬遁甲历》、《四季天象占验历》、《御览天象录》等历书,按时呈交给皇帝。日月食发生的确切时间、地点等等,都要提前预报给皇帝。

十年三月,皇帝和大臣们讨论天体运行和七政(日月五星)的运行规律,大家都用蔡氏的旋(旋转)理论来解释。皇帝说:“我从起兵以来,就经常观察天象,我认为天是左旋的,七政是右旋的,历法家的说法根本不对!你们还坚持蔡氏的说法,这哪里是什么‘格物致知’的学习方法呢?”十五年九月,皇帝下令让翰林学士李翀和吴伯宗翻译《回回历书》。

明朝洪武十七年(闰十月),漏刻博士元统给皇帝上奏说:咱们现在用的历法叫《大统历》,名字虽然改了,但计算方法还是沿用以前的《授时历》,这可不行啊!这根本体现不出咱们改朝换代、重新开始的决心和态度。再说,《授时历》是以元朝辛巳年为起始年份的,到洪武甲子年已经过去一百零四年了,时间太久,计算出来的数值误差越来越大,跟实际的天象越来越不符,必须得改改了!天体的运行规律非常复杂,这其中的道理很深奥。我听说有个叫郭伯玉的人,精通天文计算,应该把他找来,让他帮忙重新计算,制定一套新的历法,为咱们大明朝立个规矩。皇上批准了他的请求,提拔元统当了监令。

元统于是拿来《授时历》,把里面关于岁实消长(即一年长度变化)的理论给去掉了,把历法条例整理成四卷,以洪武十七年甲子年为起始年份,取名为《大统历法通轨》。到了洪武二十二年,他的官职又升了,从监令、丞变成了监正、副。到了洪武二十六年,监副李德芳又提出意见了,他说:“元统您把洪武甲子年定为起始年份,不用岁实消长的计算方法,跟用元朝辛巳年为起始年份,并且采用岁实消长方法相比,冬至时间就差了四天半还多。我觉得还是应该用辛巳年为起始年份,并且采用岁实消长的方法。”李德芳把自己的意见上奏了,元统也赶紧上奏解释。太祖皇帝说:“这两种说法都难以令人信服,只有检验一下,看看哪种方法计算出来的七政(日月五星)交会运行的度数与实际观测结果最接近,那就是正确的。” 就这样,《大统历》的起始年份确定为洪武甲子年,但计算方法还是沿用《授时历》的方法。到了洪武三十一年,回回钦天监被撤销了,但他们制定的《回回历》仍然沿用。

永乐皇帝迁都北京后,仍然沿用应天府(南京)的冬夏昼夜时间数据,直到正统十四年才改用北京的。正统十四年的冬天,景帝继位,天文生马轼上奏说,昼夜时间不应该更改。皇帝下令让大臣们一起讨论。监正许惇等人说:“前任监正彭德清测算得出,北京的北极高度是四十度,比南京高出七度多,所以北京的冬至日照时间是三十八刻,夏至日照时间是六十二刻。我们建议把这个数据修改到《大统历》里,作为永久的标准。马轼的说法是错误的,不能采纳。”景帝说:“太阳出入的角度,应该以全国的中心点来计算。现在京师在尧帝幽都(北京)的附近,当然应该以北京为准。以后修订历法,仍然沿用洪武、永乐时期的旧制。”

景泰元年正月辛卯,那天卯时三刻发生了月食。负责观测的官员算错了时间,说是辰时初刻才发生,结果错过了最佳的观测和记录时机,没来得及采取相应的措施。这事儿被送到了法司,按律法应该判刑,发配充军。不过皇上最后给赦免了。

成化十年,因为发现好多负责观测天象的官员都不称职,皇上就提拔了云南提学童轩当太常寺少卿,让他专门负责这方面的事情。成化十五年十一月戊戌望,又发生了月食,结果负责观测的官员又算错了时间。皇上觉得天象变化微妙难测,也就没追究他们的责任。

成化十七年,有个叫俞正己的真定教谕(相当于现在的中学老师)上书建议修改历法,皇上就让礼部和童轩一起研究这事儿。结果尚书周洪谟他们跳出来反对,说:“俞正己只是根据《皇极经世书》和历代的天文记录、历法志书来推算节气和朔望,还自己瞎琢磨,弄了个八十七年为一个周期的什么约法,每个月的天数还不一样,这也太轻率狂妄了,应该严惩!” 最后,俞正己被关进了诏狱。

成化十九年,有个天文生叫张升也上书建议改历法。但是钦天监(负责天文观测的机构)说祖宗传下来的历法不能改,张升的建议也就不了了之了。到了弘治年间,月食的预报经常不准,日食的预报也出错,可见之前的历法确实存在问题。

正德十二三年,连续几次预测日食都错了,完全对不上。

这时候,漏刻博士朱裕上奏说:“从至元辛巳年到现在已经过了二百三十七年了,时间这么久,肯定会有误差。如果不进行调整和修正,恐怕误差会越来越大。请求皇上委派大臣负责这件事,让天文台的官员一半用旧方法推算,一半用新方法推算,两种方法互相验证,每次推算都参考西域的《九执历法》。还要派官员到全国各地,用土圭测量节气早晚,反复比较核对,这样就能纠正日食的预测,使七政(日月五星)的运行规律都能准确无误。”

户部回复说:“朱裕和天文台的官员,他们的天文历法知识不一定都很精通。这次十月十五的月食,中官正周濂等人推算的结果,和旧方法以及朱裕奏报的结果都不一样,请等到月食那天验证一下再说。”

后来,周濂等人上奏说:“太阳运行的轨道每年都会略微后移,大概是一分五十秒。现在是正德乙亥年,距离至元辛巳年已经过了二百三十五年,赤道岁差,应该后移三度五十二分五十秒。如果不进行修正,推算的结果怎么可能准确呢?我仔细研究和验证,得出正德丙子年之前,冬至节气应该在二十七日四百七十五分,具体时间是辛卯日丑时初刻,太阳在赤道上的位置是箕宿六度四十七分五十秒,在黄道上的位置是箕宿五度九十六分四十三秒,以此作为历法的起始点。其他的气节、闰月、交食等等的推算,以及周天、黄赤道等等的计算,都根据岁差进行随时修正。希望皇上命令礼部官员和监正一起负责这件事。”

户部又奏报说:“旧方法不能轻易改变,还是按照旧方法来吧。另外再选拔一些精通历法的学者,和周濂等人一起用新方法进行验证,然后再向皇上奏报。”皇上就同意了这个方案。

十五年前,礼部员外郎郑善夫就说过:“日月食,日食最难预测。因为月食,只要看月亮和地球的距离远近就行了,不用考虑季节变化,而且月亮小,影子也大,各地看到的都一样。但日食不一样,太阳比月亮大得多,太阳在上面,月亮在下面,太阳离我们远,月亮离我们近。太阳的运行有四季变化,月亮的运行有九种不同的轨道。所以南北各地看到的景象和时间都不一样。必须根据地点建立观测表,根据时间来推算日食发生的时间。比如正德九年八月辛卯那次日食,朝廷天文官报告日食遮挡了八分之六十七秒,但是福建、广东等地却完全被遮挡了。时间和程度怎么会一样呢?现在应该根据日食来重新制定历法,时间和程度都要精确到分秒,不能含糊。不然,时间长了,积累的误差就会越来越大,历法就对不上了。” 可惜他的建议没有被采纳。

十六年后,南京户科给事中乐頀和工部主事华湘都因为精通历法而被提升为光禄少卿,负责监修历法。嘉靖二年,华湘上奏说:“历史上精通历法的人,主要有三个学派,汉代的《太初历》用钟律,唐代的《大衍历》用蓍草和龟甲,元代的《授时历》用日晷来观测,比较接近实际。想要修改历法,却不去天文台观测,那都是空想。我希望允许我暂时进京,监督中官周濂等人,在冬至之前到观象台,昼夜观测,每天记录数据,等到第二年冬至,再验证二十四节气、冬至和朔日、太阳和月亮的运行、黄赤道、昏旦中星、七政四余的度数,看看和元朝辛巳年测量的结果相比,有什么差异,把结果记录下来。还要命令礼部邀请精通数学的人到京城,详细测定岁差,制定一个新的历法。” 礼部召集大家讨论,乐頀认为历法不能修改,和华湘意见相左。礼部说:“华湘想要亲自观测,并非无知之举。让两位大人各抒己见,彻底讨论清楚异同,以符合天道。” 最后,朝廷同意了他们的请求。

话说七年前,钦天监那些算命先生上奏说:“闰十月初一,根据回回历(伊斯兰历)的推算,将会发生日食,时间是二分四十七秒;但是根据咱们的大统历推算,根本就没有日食。”结果呢?还真没日食! 十九年三月癸巳日初一,朝廷官员又说这天该有日食,结果呢?还是没有!皇帝一听可高兴了,觉得这是上天眷顾他呢!其实啊,这都是因为他们推算得不准!

隆庆三年,负责钦天监的顺天府丞周相先生出版了一本《大统历法》,这本书里头详细地记载了古今各种历法的不同之处。到了万历十二年十一月癸酉日初一,大统历推算说会有日食,时间是九十二秒;可回回历却说没有日食。结果呢?回回历对了! 礼科给事中侯先春就上奏说:“最近几次日食月食的推算都出错了,比如日食说在酉时发生,实际上却在戌时;月食说快结束了,实际上还差九分之一呢!这误差也太大了!回回历推算日月食和五星凌犯,那可是相当精准的,为什么不把回回历的算法编入咱们的大统历里,互相印证一下呢?”皇上觉得他说的有道理,就批准了。 二十年五月戌夜,又发生了一次月食,结果钦天监的官员们推算的时间居然还差了一天!

二十三年,也就是万历二十三年,郑王世子郑载堉献上了《圣寿万年历》和《律历融通》这两本书。他在奏疏里大概这么说道:

咱们高皇帝朱元璋起义的时候,元朝的历法用得时间还不长,节气和朔望的误差还不大,所以当时没改动,只是稍微润色了一下。可时间长了,误差就越来越大了。《后汉书》里就说过,“三百年的斗历就要改制”。现在咱们万历年间,九年辛巳年正好赶上“斗历改制”的时候,又符合“乾元用九”的说法,这正是改历法的最佳时机啊!我之前把《大统历》和《授时历》两种历法仔细比较了一下,查古代的记录,发现节气误差能达到三天,推算到现在,时间误差就达到了九刻。这九刻的误差,要是发生在半夜,那就直接差了一天!节气差一天,置闰就差一个月;闰差一个月,季节就差一个季度;季节差一个季度,一年就差一年!这误差能小吗?原因是《授时历》减分减得太多了,先天就错了;而《大统历》又不减分,这是后天错了。所以我就综合了两家的方法,取了个中间值,制定了一个新的计算方法,编成了这本书。这本书的大致思路是参考许衡的历法,但跟许衡的历法又不完全一样。

黄钟是律历的基础,以前那些历法很少提到它。我的新方法是把律吕、爻象这些东西放在最前面。关于尧的时候冬至太阳所在的星宿位置,《后汉书》里何承天算的是在须女座十度左右,一行算的是在女虚座之间,元朝的历法也说是在女虚座交界处。但是《授时历》算出来是在牛宿二度,《大统历》算出来是在危宿一度,两者相差二十六度,这都不符合《尧典》的记载。我的新方法是根据尧元年甲辰年推算的,夏至中午,太阳在柳宿十二度左右;冬至中午,太阳在女宿十度左右;心宿和昴宿在黄昏的时候位于正南方向,各偏离正南不超过半个星宿,这和何承天、一行两位大师的说法是一致的。这些都是跟旧历法有很大不同的地方,其他的详细内容,请看我的《历议》。我希望皇上能下令让大臣和有名的学者一起审查,然后采用我的新历法。

首先,这个历法计算方法,第一步叫“步发敛”。它以嘉靖甲寅年为起始年份,纪元是公元4560年,实际是公元1461年。一年中节气的偏差是1.75忽(忽为古代时间单位),每年的周天运行速度是不固定的,需要根据每年的岁差来计算。一年中气应(也就是节气)的总时间是55天60刻89分,一个旬周是60天。

接下来是第二步,“步朔闰”。朔望弦(指月亮的盈亏变化)的计算方法和《授时历》一样,闰月的时间是19天36刻19分。第三步是“步日躔”,太阳每天运行一度,一年运行365度25分,这叫做“躔周”(也就是天周)。 天周的一半,以及相应的其他计算方法,都和《授时历》一样,辰星的运行周期是全年的十二分之一。黄赤道岁差,盈初缩末限,缩初盈末限的计算,也都和《授时历》一致,周应是238度22分39秒。 (按照《授时历》计算日度的方法,是把周应加上积度,从虚宿七度开始计算,周应是从虚宿七度到箕宿十度的数值。《万年历法》则是从周应中减去积度,从角宿初度开始计算,周应是从箕宿十度到角宿初度的数值,应该是286度45分。现在算出来的数字对不上,好像有错误。)

第四步是“步晷漏”,也就是计算日影长度和漏刻时间。北极星的高度,冬至和夏至正午的日影长度,以及二至日的昼夜长短,都以北京为标准。同时也会参考其他地方的观测数据,来计算不同地点的差异。第五步是“步月离”,月亮的运行速度、周期和运行中点,都和《授时历》相同。月亮运行的迟疾限是336限16分60秒,迟疾限的一半,以及相应的其他计算方法,都和《授时历》一样。月亮运行的偏差是每天90刻60分,运行周期是7天50刻34分。

第六步是“步交道”,也就是计算日月交点的运行。 正交、中交的计算方法与《授时历》相同。日月交点之间的距离是14度66分66秒。交点周期、中点和偏差,也与《授时历》相同,交点运行周期是20天47刻34分。第七步是“步交食”,也就是计算日食和月食。日食发生时,太阳和月亮的交点距离,外限是6度,对应的计算方法是61;内限是8度,对应的计算方法是81。月食的计算方法与《授时历》相同。

最后一步是“步五纬”,也就是计算五颗行星(土星、木星、火星、金星、水星)的运行。 合应(指会合周期)分别是:土星262日3026分,木星310日1837分,火星343日5176分,金星238日3347分,水星91日7628分。历应(指回归周期)分别是:土星864日5338分,木星418日673分,火星314日49分,金星60日1975分,水星253日7497分。行星运行的周率、度率以及晨昏时刻的可见度,都与《授时历》相同。

好家伙,他研究了一年多,终于有了结论,说:“阴阳消长嘛,都是一点一点积累起来的,没有哪件事是从一开始就一下子成功的。《授时历》查考古代资料,一百年就加一分,这道理讲不通啊。比如,咱们算算鲁隐公三年酉年,到元朝辛巳年,中间隔了两千年。按照《授时历》的方法算,这一年应该加20分,结果是庚午年冬至的下午六点。再算算下一年壬戌年,到元朝辛巳年,隔了1990年,按照《授时历》的方法算,应该加19分,结果是乙亥年冬至的早上50刻44分。这两个冬至一减,相差365天44刻44分,也就是一年多出九分之四天,而不是四分之一天啊!历法上的漏洞,没有比这更大的了。新的方法要仔细斟酌,如果每年增减两秒,往回推算,就会和昭公己丑年对不上;每年增减一秒到一秒半,就会和僖公辛亥年对不上。现在我们取个中间值,方法是把固定间隔自相乘,七乘以八再除以所得的百,再把结果换算成分,得到一秒七十五忽,这样辛亥年和己丑年就都能对上了。”

接下来,他又开始讨论太阳的运行轨迹了,说:“古代历法在《六经》里都能找到,最容易考证的就是太阳的运行轨迹和中星的位置。但是推算历法的专家很少有人能真正搞明白,主要是因为他们不懂得夏历和周历的不同。大体上说,夏历以节气为准,周历以中气为准。何承天把正月甲子夜半合朔雨水定为上元,这既不符合夏历的朔日,也不符合周历的正朔。所以,近代推算《月令》、《小正》的人,都和古人对不上。我用新的方法计算岁差,然后往上推算到《尧典》中记载的中星位置,发现所谓的‘四仲月’,指的是从节气开始到中气结束,在三十天内观测到的中星位置。后世的人把‘四仲月’理解为二分二至,这就错了。”

他讨论北极星的位置,说:“从汉朝到齐朝、梁朝,大家都认为北极星就是不动点。只有祖冲之通过测量知道北极星距离北极点有一度多。从唐朝到宋朝,又测得北极星距离北极点有三度多。《元史》采用三度这个数据,大概也没什么特别的解释。我们新的方法不测量北极星,而是用日影来验证。在正南方向的平面上,把周天360度中的一度作为北极点,从这个点向右旋转,数到67度41分,就是夏至日太阳运行的位置。再数到115度21分,就是冬至日太阳运行的位置。向左旋转,数法也一样。这四个点加上中心点一共五个点,每个点都标记一个针。在冬至和夏至的正午,把测量仪器竖直朝南,测量日影,让三个针的影子重合,然后用绳子画出影子的中线,再用十字架标出中心点,观察横线与北极点的距离,这就是北极点在地球上的高度。”

他接着解释说,这种新的方法,不用直接观测北极星,而是巧妙地利用了夏至和冬至正午的日影来间接确定北极点的位置。通过精确测量和计算,就能得到北极点在地球上的高度。这比以前直接测量北极星位置的方法更加精准可靠。 他强调,以往各个朝代对北极星位置的测量结果有所差异,而他们这次采用的是全新的方法,结果更值得信赖。

他讨论测量日影的方法,说:“何承天通过立表测影,才发现自汉朝以来,冬至都比实际时间晚了三天。所以,推算日影,是制定历法的关键。《授时历》也依靠日影观测作为基础,但是《历经》里却没有记载推算日影的方法,这是个缺憾。我现在用北极高度和弧矢两种方法来计算,希望能彻底弄明白它的原理。而且,我还根据各地地势高低的不同,设立不同的标准来应对变化,这是以前从未有过的。”

他又说:“《授时历》的制定依据是《前汉书》记载的鲁献公十五年戊寅年正月甲寅朔旦冬至,并以此作为起始点。可是,献公十五年距离隐公元年己未,已经过去了161年,这显然不是春秋时期啊。《元志》却说‘自春秋献公以来’,又说‘昭公时冬至,是日度变化的证明’,这是错误的。献公甲寅年冬至的说法,没有任何其他依据,只有刘歆的《三统历》里提到过。难道《左传》不可信,而刘歆的话就能信吗?太初元年冬至在辛酉,刘歆却说是甲子,差了三天,连这点都搞不清楚,还能推算出几百年以前的情况吗?所以,凡是春秋前后一千年的气朔交食,《长历》《大衍历》推算的结果比较接近实际,刘歆、班固的说法完全不对。”

他还说:“《大衍历》认为宋元嘉十三年一月甲戌,日影长度的变化体现了日度变化,《授时历》也这么说,我认为这是不对的。如果日度真的变化了,应该像岁差一样,慢慢地移动。今年已经不符合了,明年还能符合吗?大概以前的人测量得不精确吧。冬至时日影长度超过一丈,圭表又高又长,日影就会显得虚弱模糊,应该使用望筒、副表、景符之类的工具来测量真实的日影。但是,望筒可能会稍微高低不平,副表、景符也可能前后移动,圭表本身也可能略微倾斜,圭面也可能略微歪斜,二至前后几天的日影,变化只在毫厘之间,很难分辨。况且,负责测量的人,智力水平也不一定够。九服地区那么远,又不是自己亲自测量,他们上报的日影数据,能可靠吗?”

他们讨论漏刻的问题,说:“太阳和月亮带食出入,五星在早晨或傍晚出现或消失,历法家制定的方法都以晷漏为准。但是晷漏会随着地方的南北位置和北极星高度的不同而有所差异。元朝的都城在燕京,他们制定的《授时历》,关于七曜(日月五星)出没的早晚,四季昼夜的长短,都是根据大都的晷漏来确定的。明朝初期都城在金陵,《大统历》的晷漏就改成了南京的,结果冬至和夏至的时间相差竟然超过三刻钟。现在推算交食的时刻和秒数,以及东西南北的差异,还有五星的出现和消失时间,都还是沿用元朝旧法,偏偏只改了漏刻,所以就出现了很多偏差和错误。因此,新的漏刻法,应该参照元朝旧法。”

所以说啊,他们觉得计算日食月食、行星运行这些,都得参考漏刻的计时结果。可问题是,这漏刻的计时,会因为地方不同,南北位置不一样,北极星的高度不一样而有差异。元朝在北京,他们那会儿的《授时历》,算日子、算星象,全都是按北京的漏刻来的。后来明朝建都南京,《大统历》就改用南京的漏刻了,结果一算,发现冬至和夏至的时间差了不止三刻钟!现在我们算日食月食的时间,算东西南北的差异,算行星出现消失的时间,用的还是元朝的老方法,就光改了这漏刻,所以才出错了。所以,新的漏刻法,还是得按照元朝的老方法来。

他解释日食说:“太阳的运行轨道和月亮的运行轨道有两个交点,如果太阳正好运行到交点,那就是日食全食;如果只是在交点附近,那就是日食,但不是全食。这就是天体的交点限度。此外还有人在地球上所处位置的限度,比如在中国发生日全食,太阳被遮挡了一半,而在海外,可能就看不到日食,或者只是日偏食。反过来也一样。这是为什么呢?因为太阳就像一个大红色的球,月亮就像一个小黑球,它们一起悬挂在空中。当太阳在月亮的正上方,小黑球必然遮挡大红球,看起来像是全食;但从旁边观察,由于距离的远近不同,日食的程度就有所差异了。春分以后,太阳运行在赤道北侧,交点外侧偏多,交点内侧偏少;秋分以后,太阳运行在赤道南侧,交点外侧偏少,交点内侧偏多。所以南北方向有差异。冬至以后,太阳运行在黄道东侧,上午偏多,下午偏少;夏至以后,太阳运行在黄道西侧,上午偏少,下午偏多。所以东西方向也有差异。中午仰望太阳很高,早晨和傍晚平视太阳很低,所以有正午的差异。日食发生在中午之前看到的早,发生在中午之后看到的晚。所以有时间上的差异。所有这些差异,只有太阳有,月亮没有。所以推算日食,尤其太阳的日食比较困难。想要推算九服地区的日食变化,必须根据各个地区的情况,考察日影的长短,测量北极星的高度,才能大概推算出来。《历经》推算的数字,只是根据燕京所见的情况说的。以前有人说:‘月亮运行在内道,日食的预报比较准确;月亮运行在外道,日食的预报就不准确了。’又有人说:‘天体的交点限度,即使在内道,如果在地球上的观测点超出这个限度,就如同在外道一样,太阳也不会发生日食。’这种说法好像有点道理,但并不完全正确。比如夏至前后,如果日食发生在寅卯酉戌时辰之间,人们朝东北、西北方向观测,那么外道的日食程度反而比内道的多。太阳的体积大于月亮,月亮不能完全遮挡太阳,有时即使是日全食,阳光也会从四周溢出,形成金环日食,所以日食不可能完全遮挡太阳。即使是全食,也只有九分之八十秒。《授时历》中,日食的阳历限度是六度,定法是六十;阴历限度是八度,定法是八十。分别设置限度,按照定法计算,都能得到十分。现在在定法下,各加一个数字除以限度,就能得到九分八十秒多。”

这段文字解释了古代对日食现象的理解和推算方法,涉及到天文地理知识和观测方法。 它特别强调了不同地点、不同时间观测日食的差异,以及推算日食的复杂性。 文中提到的《历经》和《授时历》都是古代重要的历法著作。 最后,作者还解释了为什么日食不可能完全遮挡太阳的原因。

他解释月食的时候说:“月亮变暗的原因,是因为地球的影子。影子遮挡月亮,不会因为早晚、高低不同而有变化,一年四季、各地看到的现象都一样。就像在一个黑暗的房间里挂一个黑球,左边点燃蜡烛,右边挂一个白球,如果蜡烛的光被黑球挡住了,白球就照不到光了。无论站在房间的哪个角落看,看到的现象都一样。所以,月食没有所谓的时差。从《纪元历》开始就错误地设立了时差,《授时历》又沿用了这个错误,真是错得离谱!”

接下来,他又谈到了五星(金木水火土)的运行规律,他说:“古代推算五星运行的方法,不如加上变数的增减来得准确。北齐的张子信长期观察天象,知道五星的运行速度有盈亏变化,应该根据实际情况增减数值,才能准确计算出每天的运行位置。因为五星运行的轨道出入黄道(太阳运行的轨道)内外,各有其运行规律,离太阳远近决定运行速度的快慢,而这个增减的变数,就像道路的直线和弯曲一样。宋朝有人说过:‘五星运行的度数,在停留和后退的时候误差最大。从内侧运行到外侧的,后退时必然转向外侧;从外侧运行到内侧的,后退时必然转向内侧。它的轨迹就像柳叶的形状,两端比中间尖锐,往复运行的路线相差很远。所以,星星在运行到两端的时候速度稍慢,因为是斜着走的;在中间运行的时候速度稍快,因为是直着走的。’以前的历法,只是在旧方法上增减一些数值而已,并没有真正地仔细观察天体的运行度数。正确的做法应该每天黄昏、半夜、黎明都测量月亮和五星的位置度数和秒数,详细记录下来。五年之后,除去阴天和白天看不到的日子,可以根据三年实际观测的结果,用数学方法进行总结归纳。”

书上写着,礼部尚书范谦上奏说:“关于岁差的计算方法,从虞喜开始,历代都有不同的说法,却始终没有一个统一的标准。大家研究岁差,主要有三个方面:根据月令推算星宿的位置,测量二至日的日影长度,验证交食的时刻和角度。用衡管来考量,用圭表来测量,用漏刻来验证,这些方法虽然很精密了,但也只能得到一个近似值。历法家们把周天分成三百六十五度又四分之一度,用来记录七曜(日月五星)的运行,又把一度分成一百分,一分再分成一百秒,看起来已经很细致了。但是,浑天仪的直径才几尺,周天三百六十度都画在上面,每一度的长度还不到一个手指那么宽,哪里还能标示出分秒呢?再说,圭表的高度也只有几尺,漏刻的刻度也不过几寸长。天那么高那么广阔,却用这么小的工具来测量,想要精确到毫厘不差,是不是太难了?所以,当岁差的误差还只在几秒钟以内的时候,根本无法验证;只有当误差超过一度,才能用圭表略微观察到。这就是为什么古往今来那么多聪明人都想解决这个问题,却始终不能完全掌握岁差变化的原因啊!就像世子说的那样,《大统历》和《授时历》相比,推算古代的气候就差了三天,推算现在的时间就一定会有好几刻的误差。如果时间误差达到九刻,在亥时和子时之间就会相差一天,在月末和月初交替的时候就会相差一个月,这在现在就可以验证。如果时间提前了,那么日出就会出现在第二天傍晚;如果时间推迟了,那么日出就会出现在第四天傍晚。现在好像还没到这种程度。这份奏章应该交给钦天监去仔细研究验证。世子对历法很用心,又通晓古今,应该给他一些奖励和鼓励。”皇帝同意了他的建议。

范谦的奏章继续说道,研究岁差的方法,主要有三种:一是根据古代的月令来推算星宿的位置;二是测量冬至和夏至这两天的日影长度;三是验证日食和月食发生的精确时间和角度。这些方法虽然很精细了,但也存在局限性。浑天仪太小,圭表和漏刻的精度也有限,想要精确到秒,几乎不可能。所以,只有当岁差的误差大到一定程度,才能被观察到。

他进一步指出,《大统历》和《授时历》在推算时间上存在差异,这说明岁差的计算确实存在问题,需要进一步改进。他建议将奏章交给钦天监进行验证,并建议皇帝表彰世子对历法的贡献。皇帝最终采纳了他的建议。

河南的佥事邢云,上书皇上说:“研究历法,最重要的就是观测天象、测量日影、推算节气、制定策略这四件事。现在丙申年冬至到了,我测算的结果是乙未日未正一刻,但是《大统历》推算的结果是申正二刻,差了九刻呢!而且今年的立春、夏至、立冬,都正好在子时半的时候。我推算立春是乙亥,但是《大统历》推算的是丙子;夏至是壬辰,《大统历》推算的是癸巳;立冬是巳酉,《大统历》推算的是庚戌。这三个节气,推算结果都差了一天。如果冬至在子时半,那就要把元旦提前到月底,而朝贺大典就在正月初二了,这可不是小事啊!再说闰八月初一发生日食,《大统历》推算初亏在巳正二刻,日食结束的时间也推算错了,而我观测到的初亏时间是巳正一刻,日食只遮住了七分多。也就是说,《大统历》推算的结果比实际情况晚了将近两刻钟,那么闰月、转轮、交食这些,都应该相应地增减调整啊!”

钦天监的人看到邢云的奏疏,非常生气。监正张应侯上奏弹劾邢云,说他僭越妄为,迷惑世人。礼部尚书范谦却说:“历法是国家的大事,读书人应该认真研究,这可不是只有历法官员才能干的事儿。律法禁止的是那些胡说八道、妖言惑众的人,可不是禁止改进历法的。钦天监的官员只知道死守旧的历法,不会根据实际情况修改,现在既然有邢云这样的人才,就应该让他参与进来,共同完成这项大事,不应该嫉妒他。我请求让邢云督管钦天监的事务,督促官员们认真观测,精心推算,最终编制出一部完美的历法。” 这个建议上报后,却没有得到批准。

话说三十八年,十一月壬寅朔那天发生日食,负责观测的官员算错了时间和日食的程度。有个叫范守己的官员上书指出他们的错误。礼部官员于是决定广招精通历法的学者,让他们日夜加班,跟观测官员一起重新计算,争取把历法计算得准确无误。这时,负责天文观测的官员周子愚提了个建议,他说:“那些从大西洋来归顺的大臣,庞迪峨、熊三拨他们,带来了西洋的历法书籍,里面有很多内容是中国以前没有的。建议按照以前翻译西域历法的惯例,让精通历法的官员和天文观测官员一起,把这些书都翻译出来,来补充我们现有的不足。” 之前,利玛窦就进贡过一些外国的物件,之后庞迪峨、熊三拨,还有其他的西洋人,比如能华同、邓玉函、汤若望等等,也都陆续来到中国,他们都非常精通天文历法。礼部就上奏说:“像徐光启、范守己这样精通历法的人,是现在难得的人才,建议提升他们的官职,让他们一起负责处理历法的事务。翰林院检讨徐光启和南京工部员外郎李之藻也都很擅长天文历法,可以和庞迪峨、熊三拨他们一起翻译西洋历法,再让徐光启他们参与审查和修改。不过,历法的准确与否,最能体现的地方就在日食的观测上,想要修订历法,就必须重新进行观测验证。所以请求皇上命令有关部门修缮天文仪器,方便他们开展工作。” 奏疏递交上去后,先被搁置了。没过多久,徐光启和李之藻都被召到京城,参与修订历法的工作。徐光启主要依靠自己以前学习的知识,而李之藻则主要参考西方的历法。

到了四十一年,李之藻已经升任南京太仆寺少卿了,他上奏朝廷,详细说明了朝廷天文台计算日月食时间和程度的错误。并且极力推荐庞迪峨、熊三拨以及其他的外国人和中国学者,他说:“他们对天文历法的论述,有很多是以前中国古代的学者没有达到的,他们不仅能计算出结果,还能解释其中的道理。他们制造的观测天体和太阳的仪器,更是精巧绝伦。现在庞迪峨他们年纪大了,请求皇上命令礼部设立一个专门的机构,把他们的历法翻译成书。” 礼部官员姚永济也提出了同样的建议。但是当时朝廷事务繁忙,一直没时间设立这个机构。

四十四年的时候,徐光启在奏章里提出了他的《七政真数》,意思是说:计算历法的关键,一定要用两个交点来互相参照。这两个交点的位置确定了,那么中间时刻的度数,分分秒秒都能算得出来。日月交食,行星凌犯,这些都是日月五星互相交汇造成的现象。只要这两个交点的位置相对准确,互相印证,那么关于七政(日月五星和木星、土星)的各种天文现象就能全部计算出来了。

天启元年春天,徐光启又详细地论述了古今关于交食的各种说法,用这些来证明旧历法的疏漏,以及他新方法的精准性。他把奏章递交给了礼部。四月壬申那天发生了日食,徐光启推算的日食时间和食分,跟钦天监推算的结果不一样。徐光启自己说他的新方法非常精准,到了日食那天就能检验出来,结果却和实际情况不符。徐光启还曾经讨论过《大统历》中宫度交界的问题,认为应该根据岁差来重新确定,不应该继续沿用《授时历》三百年前测算的数据。他还说,月建和月关所指的斗杓位置,因为斗杓有岁差,而月建却没变,这些都是他坚持的观点。

崇祯二年五月乙酉那天又发生了日食,礼部侍郎徐光启按照西方的办法预先推算,结果显示顺天府地区能看到日食,食分大约两分多一点,琼州地区能看到日食的食既(日全食或日环食开始的时刻),而大宁以北地区则看不到日食。《大统历》和《回回历》推算的顺天府日食时间和食分,跟徐光启的推算结果不一样。后来证明徐光启的推算结果是正确的,其他的都错了。皇帝为此严厉责备了钦天监的官员。当时五官正戈丰年等人说:“《大统历》是国初制定的,实际上就是郭守敬的《授时历》,已经用了二百六十年,一点都没改动过。从至元十八年制定这个历法开始,过了十八年,到了大德三年八月,就出现了该有日食却没有的情况;六年后六月又发生了日食,但推算结果却错了。当时郭守敬正在担任钦天监的负责人,对此也感到无可奈何,更何况那些墨守成规的人呢?现在如果继续沿用旧历法,将来肯定会有更大的误差。”于是礼部奏请朝廷重新修订历法,并由徐光启负责督修。徐光启说:近世研究历法的学者,大多沿用郭守敬的方法,但是像岁差的循环变化,岁实的参差,天球的纬度,地球的经度,星宿的自行,日月五星的本轮,日月视差和真交点等等,这些都是古人没有发现的,只有西方的历法才考虑到了这些。如果不采用这些方法,那么关于交食和凌犯的推算,就永远不会精确。所以应该把西方的这些方法和《大统历》的方法结合起来,互相考证,最终统一起来。

话说光启上奏了十条修改历法的建议,第一条呢,是关于岁差的。他研究了岁差每年东移的多少,来纠正过去一百年、五十年、六十年之间,历法计算结果差异很大的问题。

第二条,是关于岁实(一年实际天数)的。以前测算的岁实比现在测算的多,而且年年都不一样,日照时间长短也跟着变。他根据这些变化,重新确定了冬至和节气。

第三条,是每天都要测量太阳运行的经度,算出每天运行的盈亏,以及东西南北高低不同的影响,从而精确计算太阳的运行轨迹。第四条,是每天晚上测量月亮运行的经纬度,算出月亮运行的快慢,以及东西南北高低不同的影响,从而精确计算月亮的运行轨迹。

第五条,是精确测量星宿的纬度,确定七曜(日、月、金、木、水、火、土)运行的盈亏、快慢、顺逆、距离远近等数据。第六条,是精确测量五星(金木水火土)的经纬度,确定它们运行的快慢、逆行、出现和消失的时间,以及东西南北高低不同的影响,从而推算它们互相凌犯(互相遮挡)的情况。

第七条,是推算黄道和赤道的宽度,精确测量这两条线的距离,以及月亮和五星各自的运行轨道与黄道的距离,从而确定它们运行的交汇点。第八条,是研究日、月运行到交点(黄道和白道相交的点)的远近,以及真会(实际交会)和视会(看起来交会)的区别,从而精确计算日食和月食发生时,与正午时间的差距,最终更正日食月食的预报。

第九条,是通过测量太阳运行,了解南北极出入地平面的角度,从而确定周天(圆周)的纬度,使七曜的计算更加精确。同时,通过月食来确定东西方向的距离和地球的经度,从而精确计算日食月食的时间。第十条,是参考唐朝和元朝的历法,在各地测量南北极出入地平面的角度以及地球的经纬度,从而计算出各地昼夜长短,更正日食月食的有无、先后和次数。

为此,光启还推荐了南京太仆少卿李之藻、西洋人龙华民和邓玉涵。皇上批准了。九月癸卯日,正式设立了修历机构。三年后,邓玉涵去世了,光启又请来了西洋人汤若望和罗雅谷帮忙翻译书籍和进行计算。光启后来升任本部尚书,继续督促修订历法。

话说四川巡按御史马如蚊推荐了资县一位叫冷守中的秀才,这冷守中精通历法,上呈了一部历书给朝廷。钦天监的光启对冷守中的历书提出了质疑,认为其中存在错误,并预先推算出次年四月四川地区月食发生的时间,让冷守中现场验证。四年后的正月,光启上交了自己编撰的《历书》二十四卷。到了夏四月戊午这天晚上,发生了月食,光启提前精确地推算出了月食发生的分秒时间和方位。他在奏章中解释说:“日食各地情况不同,所以要根据当地的纬度计算食分(日食遮挡程度),根据经度计算食始时间。而月食的分秒时间,全国各地都是一样的,只需要用经度来推算先后时间。我根据舆地图大概推算了一下,列出了各布政司月食初亏(月食开始)的度分,因为食分全国各地都一样,所以其他的都可以类推,不像日食那样经纬度都不同,需要详细计算。另外,月亮的直径是十五分,那么完全进入地影也只有十五分。现在推算出是二十六分六十秒,是因为地影的体积大于月亮,如果月食发生时月亮离交点(月亮、地球、太阳三者中心连线)较远,月亮就无法完全进入地影,只能根据月亮本身来计算食分。这次月食发生时,月亮非常靠近交点,所以月亮进入地影十五分才算食既(月食食甚),之后又前进十一点多,才开始复圆,所以一共是二十六分多。像《回回历》推算的十八分四十七秒,也是类似的算法。” 结果,四川上报的冷守中推算的月食时间与实际时间相差两小时,而光启的新法却非常精确。

光启又上交了二十一卷《历书》。到了冬十月辛丑朔日,发生了日食。光启的新法预先推算出,在顺天府能观测到日食二分十二秒,应天府以南地区将出现日食,大漠以北地区将出现食既(日食食甚),而京师(北京)观测到的日食不足三分,不足以进行观测和验证。光启在奏章中说道:月食发生在晚上,时间早晚难以确定,没有确切的依据。只有日食,可以根据日晷来计时,没有时间上的偏差。所以,历法的精确与否,日食观测是关键。我们编纂的新历法,正在逐步完善,但下一次交食(日食或月食)还需等待很长时间,现在不与监官一起观测,等到新历法完成后,又该如何证明它的准确性呢?况且,这次日食的观测结果,更能说明问题。

话说以前算时间,太阳正当中就是正午,没啥时差。可现在,太阳明明在正午,按新法算却还有时差,这是为啥呢?因为七大行星(太阳、月亮和五大行星)的运行都沿着黄道,而不是赤道。以前说的正午,指的是赤道上的正午,不是黄道上的正午。黄道和赤道这两个圈,只有冬至和夏至那天才正午时间一样。现在十月初一离冬至还远着呢,黄道正午和赤道正午的时间差,足足有两度多,怎么能因为时间接近正午就忽略不计呢?偏偏赶上今天这个日子,这个时间,正好可以验证时差计算方法的正确性,这是第一点。

咱们这地方的经度还没精确测出来,所以加减时间也定不准。以前的方法是通过观察日食,多次测量才能校准。现在这次日食,用新方法观测,加减的时间可能前后对不上,那就得参考以前记录的经度,仔细调整,这样才能找到经度差的准确数值,这是第二点。

以前算时差,只知道正午不用加减时间,却不知道正午是黄道上的还是赤道上的。现在一看就明白了,加减时间是因为黄道的缘故。这么一解释,其他的方法也都能理解了,可见这学习起来其实很容易,这是第三点。

即使误差很小,也应该仔细观测,力求精确。皇上也同意这个说法。到了那一天,光启带着官员们提前准备好日晷、漏壶,用测高仪器测量日食发生时的太阳高度。还在密室里开个小缝,放上窥筒和望远镜来观察日食的亏缺程度,画日体分数图板来记录日食的进度,测得的时间和高度都吻合,唯独日食最大程度的亏缺少了两分。于是光启说:“现在日食最大程度的亏缺已经很精确了,经度差也不用再调整了。只是亏缺程度对不上,原来推算的人大概是因为太阳光太强,会减弱月亮的光,所以日食要达到四五分以上,才能和原来的推算相符。但是这次测量,用的是密室里的窥筒,所以才能得到这个精确的数值。如果只是用肉眼看,或者用盆子反射阳光来看,那光线晃动不定,估计亏缺程度还会更小。”

话说,有个叫魏文魁的人,穿着普通的衣服,却写了两本书,《历元》和《历测》。他让儿子魏象乾把《历元》呈交给朝廷,通政司就派人来审查。审查的人叫光启,他挑出了七个问题,第一个问题是:自汉朝以来,一年实际的天数一直在减少,到了《授时历》里,一年减少了24分25秒。按照郭守敬的方法计算,一百年减少一秒,现在应该减少21秒多一点。可是《历元》却用了赵知微的算法,减少了36秒,一下子增加了好多,这不对啊!

第二个问题是:计算弧长的时候,应该用精确的比例。可是《历测》里还在用周长是直径的三倍的粗略算法,这和实际的弧长差得远了。第三个问题是:一年中昼夜长短变化最大的时候,不是在冬至和夏至,而应该是在冬至和夏至之后各六度的地方。你看啊,从春分到夏至,从夏至到秋分,这两个时间段里,每天的时间长短都不一样;从立春到立夏,从立秋到立冬,这两个时间段里,每天的时间长短也不一样,这都是测量出来的结果。

第四个问题是:你说月亮运行最快的时候是在最高点,最慢的时候是在最低点,而且是用圭表测出来的,这是不对的。月亮运行快慢是它自身运行轨道决定的,圭表测量的是月亮的高度,这两者根本不能混为一谈。而且,月亮绕地球运行的同时,自身也在自转,所以月亮在最高点的时候向西运行,速度最慢;在最低点的时候向东运行,速度最快。旧的算法正好相反。第五个问题是:你说日食发生在正午的时候没有时间差,这是错的。时间差指的是距离黄道限东西各九十度的地方,而不是距离赤道的正午。在黄道限附近,有的地方距离正午前后有二十多度,你只根据正午来加减时间,怎么能准确呢?

第六个问题是:你说交食的限度,阴历是八度,阳历是六度,这是错的。日食,阴历应该是十七度,阳历应该是八度;月食,阴历阳历都是十二度。第七个问题是:《历测》里说:“宋文帝元嘉六年十一月己丑朔,日食不全像弯钩一样,白天也能看到星星。现在用《授时历》推算,日食只有六分九十六秒,郭守敬的历法错了。”可是,月食全国各地都一样,日食各地却不一样。南宋的都城在金陵,郭守敬的历法是在燕地制定的,北极高度相差八度,在十一月份,食分应该相差两分左右,所以说“不全像弯钩”,应该在九分左右。郭守敬的历法推算出来是七分左右,这很接近,并没有错啊!我们现在确定日食的分数,首先要考虑交点,其次是地球的位置,再次是时间,这三点缺一不可。

魏文魁反复争论,光启又进一步解释了他的观点,还写了一本书叫《学历小辨》。

他讲到关于岁实和日食的偏差,分析得特别清楚。他说:“岁实(一年收成)越来越少,从汉朝到元朝,一直在逐渐减少。现在新法确定的岁实,比元朝的还要少。不懂的人一定会认为,这不仅比《大统历》早,甚至比上古时代更早了。拿壬申年的冬至来说,《大统历》推算的结果是巳亥寅正一刻,而新法推算的结果是辰初一刻十八分。这是为什么呢?因为一年和月亮的运行轨迹差不多,冬至没有固定的比率,这和朔日、望日没有固定的比率是一样的。朔望日没有固定的比率,就应该用平均朔望日来加减调整;冬至没有固定的比率,就应该用平均年数来加减调整。所以,新法推算的平均冬至,虽然在《大统历》之前,但确定的冬至却总是在《大统历》之后。”

他又说:“宋仁宗天圣二年甲子年,五月丁亥朔,天文官员推算说当天没有日食,而其他的历法推算都说有日食。按照计算方法,确实应该有日食,但实际上却没有。这该如何解释呢?这就是日食的偏差问题。月亮在阴历中,距离交点十度左右,按照计算方法,应该有日食。但是,偏偏在这一天,南北方向的偏差变成了东西方向的偏差,所以从天体运行的角度来看,地心和日月是直线相交的,实际上并没有错过日食。但从人们看到的角度来看,日月之间的距离由近变远,实际上就看不到日食了。只有汴京是这样的,如果从汴京往东几千里,就能逐渐看到日食,到东北方向一万多里以外,就能完全看到日食。日食的偏差,时间不同,变化也不同,有时多变少,有时少变多,有时有变无,有时无变有。推算历法的困难,全在于此。”没过多久,他就升任内阁官员了。

五年九月十五日,发生月食。监推官推算初亏时间是卯初一刻,光启等人推算的是卯初三刻,回回科推算的是辰初一刻。三种方法的结果不一样,导致皇上询问原因。到了那一天,天空阴云密布,什么也看不到,无法验证。光启详细解释了三种方法不同的原因,并陈述了自己的见解:

时间加减的差异,是因为盈缩和迟疾这两个方面造成的不同。盈缩的差异,旧法是根据冬至和夏至来计算的,新法是根据太阳运行的最高点来计算的。这个最高点在宋朝绍兴年间和夏至的度数相同。郭守敬之后一百多年,两者之间相差一度多一点,所以感觉不出来。现在这个最高点在夏至之后六度。这就是两种方法在盈缩方面差异的来源。迟疾的差异,旧法只用一个转动周期,新法则叫做自行轮,除了自行轮之外,还有两个附加的轮子。这就是两种方法在迟疾方面差异的来源。至于《回回历》的不同之处,可能是因为四应或者里差的原因,我实在不明白其中的道理。总之,三种历法都按照各自的算法推算,不能互相改变方法来迁就对方。

将来有两点值得研究:第一是日食和月食的食分多少。日食的时候,太阳的光芒耀眼,往往是先发生食分,然后才能看到;月食的时候,游气干扰,往往是先看到,然后才发生食分。两者相差可能超过一度。现在想要准确地测定食分,有一种新制造的窥筒,日食的时候,在暗室里用它捕捉太阳的光影,投射到尺幅的纸上,从初亏到复圆,都能精确地记录食分,图画和实际情况完全一致。月食的时候,可以用它来观察日月交合的时刻,清晰明了,与肉眼观察的结果大相径庭。这就是确定食分的方法。

第二是时间的早晚。古代是用漏壶计时,现在是用钟表计时,但都不如直接观测日月星辰来确定时间准确。白天用太阳,晚上用一颗星,都用仪器测量经纬度,然后推算出时间。这就是确定时间的方法。这两种方法一旦确立,那么其他各种天文计算的疏密之处,就没有什么能逃脱了。

话说古代的月食,史书上都没怎么记载。日食呢,从汉朝到隋朝,一共发生了293次,其中发生在农历月末(晦日)的有77次,月末前一天的有3次,初二的有3次,你看这日食发生的次数,还挺稀疏的。到了唐朝和五代时期,一共发生了110次日食,发生在月末的有1次,初二的有1次,初三的有1次,次数比汉隋时期稍微密集了一些。到了宋朝,一共发生了148次日食,竟然一次都没发生在月末,更密集了!不过,宋朝还出现过一次预测日食,结果没发生的情况。元朝一共发生了45次日食,也没发生在月末,同样也有预测日食,结果预测对了,但时间提前了的,还有一次是晚上发生的日食,结果记录在了白天。有些日食预测的时间,和实际发生的时间相差四五刻钟,这在当时已经算是很准了。

由此可见,那些看起来精密无比的事情,只有经过长时间的积累和传承,才能慢慢看出一些端倪。从汉朝到现在,已经一千七百年了,制定历法的机构有十三个,其中守敬的历法最好,但还是会有时间上的细微偏差,更何况那些沿用旧历法的机构,又怎么可能做到非常精确呢?

这一年,光启又上交了三千卷的《历书》。第二年冬天十月,光启因为生病辞去了历法官职,由山东参政李天经接替。一个月后,光启去世了。过了七年,魏文魁上奏说,历法官员推算的日食和节气都不准确。于是朝廷就让魏文魁进京来进行测验。当时负责推算历法的有四个机构,《大统历》、《回回历》之外,又另外设立了一个西洋历法机构,叫做西局,魏文魁负责东局。大家说法都不一样,争论得非常激烈,就像打官司一样。

天经上交了二十九卷的《历书》,还有一套星盘,这些都是以前辅佐光启皇帝的西方人制造的。天经预先推算出了五星凌犯、会合运行的度数,他说:“闰八月二十四日,木星犯积尸气。九月初四日傍晚,火星和土星运行到同一经度。初七日卯时,金星和土星运行到同一经度。十一日傍晚,金星和火星运行到同一经度。以前的算法推算火星和土星运行到同一经度是在初七,比实际晚了三天。金星和火星运行到同一经度是在初三日,比实际早了八天。” 可是文魁却说,天经报告的木星犯积尸,不对。

天经又说:“我在闰八月二十五日晚上和九月初一晚上,和我的同事陈六韐等人一起,用窥管观测,看到积尸星是由几十颗小星聚集在一起的,木星和积尸星,同时出现在窥管里。窥管的圆径大概只有一寸左右,两颗星的距离要在三十分以内,才能同时看到。就像觜宿三星,相距二十七分,就无法同时看到。而文魁只是凭空推算,没有实际观测。他说初二日木星已经在柳宿前面了,那么在此之前,它怎么可能越过鬼宿直接飞过去呢?” 天经又推算出木星的逆行和顺行,两次经过鬼宿,精确到度数、时刻,后来都得到了验证,于是文魁的推算就显得不足为信了。

天经又上交了三十二卷的《历书》,还有日晷、星晷、窥筒等仪器。八年四月,他又上交了《乙亥丙子七政行度历》和《参订历法条议》二十六条。

这位七政司的官员提出了七点改进意见:第一,关于星象的推算方法应该改进。以前推算星象的位置,都是以日月五星同时运行的起始点为基础,计算某星在某日某时运行到哪个宫位。现在新方法改进了星象推算,统一从崇祯元年戊辰年(公元1628年)冬至之后己卯日(正月初一)子正(午夜)开始计算。

第二,测量星体运行的度数,应该使用黄道仪器。太阳沿着黄道运行,月亮和星星各有自己的运行轨道,它们会进出黄道,而不是沿着赤道运行。如果用赤道仪测量,得到的经纬度需要通过黄赤坐标转换表进行换算,很麻烦。而使用黄道仪,就能直接得到七政(日月五星和水星、火星)的本初经度,非常方便。

第三,不同地点观测到的星体运行度数不一样。日月食发生的时间在不同地点会有先后差异,这是很明显的。那么太阳运行到二十四节气,以及月亮和星星的掩食、凌犯现象,是不是也应该和日食月食一样,根据观测地点进行调整呢?所以新方法编制的水成表(推算星象的表格),虽然以顺天府(北京)为主要参考点,但计算其他地点星体运行度数也各有其方法。

第四,用平差、立差、定差三种方法来计算星体加减分,还不够精确。历法学家通常用加减平行法来计算星体的自行速度,但这只是个近似方法。实际上天体是球形的,和平行线不一样。旧的历法使用的三差法,都是基于直角三角形的勾股定理,这与天体的实际情况不符。因此,计算盈亏的数值,也无法得到准确的结果。现在新方法的加减表,是根据球面几何计算的,才能符合天体的实际情况。

第五,现在可以随时随地计算星体的经度了。以前要计算某日某星的经度,必须先推算出该星冬至日的运行宫度和宿次,然后才能用比例计算得到。现在的新方法,不管什么时间、什么地点,只要查阅简易的表格就能直接推算出来。

第六,用“径一周三”的算法,不是计算弧矢的正确方法。古代历法家用直线来测量圆形,称为弧矢法,而用“径一周三”(圆周长等于直径的三倍)来计算,太粗糙了。现在我们建立了割圆八线表,使用起来简单而精确。弧矢的长度,只需要一次乘除运算就能得到。

第七,球面三角形的三个弧形,不能用勾股定理完全解决。古代测天方法以勾股定理为基础,但勾股定理只能处理直角三角形,不能处理斜角三角形。而天体是球形的,其表面与各种运行轨道相交,会产生许多球面三角形,勾股定理不足以解决所有问题。

第一,咱们说恒星的自行,也就是所谓的岁差,得从黄道极开始算。你看啊,每颗星距离北极星的度数,古今不一样;它距离天赤道的距离,南北不一样。但是,它们距离黄极的距离,以及距离黄道的距离,却一直没变。所以就能知道,日月五星都是沿着黄道运行的。要计算岁差的速率,就得从黄极开始算恒星的自行。

第二,古今各个星宿的度数不一样。因为恒星是以黄道极作为极点的,所以每个星宿距离星行的度数,跟距离北极星的远近有关。离北极星越来越近,赤道上经过这颗星的线就越来越密,这个星宿在天赤道上的弧度就越小;离北极星越来越远,经过这颗星的线就越来越疏,这个星宿在天赤道上的弧度就越大。这是因为黄道和赤道,以及它们的极点不一样造成的,并不是说星的位置变了,也不是说星的运行方式变了。比如觜宿这颗星,汉朝测量它距离参宿两度,唐朝测是一度,宋朝崇宁年间测是半度,元朝郭守敬测是五分。现在测量,几乎没有距离了,反而侵入参宿二十四分,这不是最好的证明吗?

第三,晚上测星的时候怎么确定时间。太阳沿着赤道往左走,每十五度算一小时。现在随便测一颗星距离子午圈的前后度数,再把这颗星的经度和太阳的经度加加减减,就能算出太阳距离子午圈的度数,然后就能换算成准确的时间了。

第四,宋朝规定的十二宫次,在哪个星宿的度数上,现在已经对不上了。这是因为恒星有自行,星宿的度数已经向东移动了。

第一段:

咱们先说太阳的事儿。第一,太阳一年里距离最远和最近的点,并不是冬至和夏至那天,而是稍微有点偏差。这个偏差每年都在往后挪,现在已经过了冬至夏至之后六度多了。第二,用圭表测量冬至夏至,其实不太准。因为冬至夏至前后,太阳南北移动的度数很小,就算用一丈长的圭表,一天的影子变化也就一分钟三十秒左右,一秒钟就相当于六刻多,要是测量误差个两三秒,那误差就差不多二十刻了,怎么能准呢?所以现在的方法只用春分秋分,因为这时候太阳每天南北移动的度数是二十四分,一天的影子变化有一寸二分,就算测量误差一两秒,也差不到一刻钟,比冬至夏至的方法精确多了。第三,日出日落的时间,应该以顺天府为基准来计算。因为各地北极星的高度不同,所以早晚的时间也不一样。《大统历》用应天府来计算,导致昼夜长短、日月食发生的时间推算都不准。现在我们改用顺天府来计算了。第四,以前的节气划分,不是真正的天文节气。以前的方法是把一年分成二十四等分,但是太阳运行的速度有快有慢,不能平均划分。如果平均划分,春分后实际上要过两天才是真正的春分,秋分也是提前两天。现在我们都改过来了。

第二段:

接下来说说月亮。第一,除了朔望(农历初一和十五)之外,月亮还有盈亏变化,仅仅用加减法算朔望的盈亏是不够的。以前的方法是假设月亮运行速度是均匀的,计算朔望的加减,大概每次是五度多,但是两次弦月(农历初七和二十二)的时间长短并不一样,《授时历》也说过朔望之外,月亮运行速度是不固定的,只是说明了道理,没给出具体方法。现在我们在加减法的基础上,又加了一个加减法,叫做“二三均数”。第二,月亮的纬度不能固定在五度,有时多有时少。古今的历法家通过观察日食月食,测量黄道和白道的距离大约是五度。但是朔望之外,这两条道的距离,有时大有时小,最大的距离大约是五度加三分之一度。如果一个月出现两次月食,用仪器测量月亮距离黄道的距离是五度,就和实际情况不符了。第三,月亮的交点运行也有盈亏变化。罗喉、计都就是月亮轨道和黄道交点的两个点,古今历法都认为它们的运行速度是均匀的。现在我们仔细测量后发现,月亮有时会在交点上,如果用平均速度计算,就会算错。所以我们又设置了一个加减法,叫做“交行均数”。第四,天空中根本没有所谓的“紫气”。以前说紫气产生于闰余,是木星的余气。现在我们仔细研究了各种星象,没有发现任何可以证明紫气的现象,知道这是虚构的。

第一段:

关于日食的讨论,有四个方面:首先,有人说日月运行的视直径并非恒定不变。因为日月运行有时高有时低,距离我们远近不同,所以看起来大小也不一样。而且,由于距离远近不同,月亮遮挡太阳的厚度也不一样,所以日食时太阳被遮挡的视直径不可能完全一致。

第二段:

其次,有人说日食发生在正午,并不一定正好在子午线的中点。而是以黄道九十度为界限作为中点。因为东西南北的偏差都依据黄道来计算,那么时间上的偏差自然也要根据黄道来计算初亏和复圆的时间,从而求得中点。而且,黄道在地平线上,两个象限本身就有各自的高度和中点。这个道理还不清楚,可能需要加减运算,或者减加运算,凡是加减运算结果不符合的,都是因为这个原因。

第三段:

再次,有人说日食的初亏和复圆时刻长短并不相等,并非简单的二分之一关系。因为视差会改变实际运行轨迹,变成视运动轨迹。所以,用视差来比较日食前后,很少有不出现差异的。既然视差导致日食前后不一样,又怎么能保证视运动轨迹前后一样呢?现在用视运动轨迹来推算时刻,那么初亏和复圆时刻不相等就显而易见了。

第四段:

最后,有人说各个地方都要根据当地的经度来推算日食的时刻和食分。因为地球上不同的地方看到日月升落的时间都不同,所以得到的时间也不同。因此,虽然日食是同一个现象,但各个地方的时刻却不一样,这都是日月食的普遍规律。如果说日食的话,由于视差因地点而异,那么月亮的视距离也不一样,看到的食分也就不同了。

第二部分:

关于五星的讨论,有三个方面:首先,有人说计算五星运行轨迹,不能用固定的数值来确定。因为五星都以太阳为中心运行,和太阳合则运行速度快,与太阳冲则运行速度慢。而且太阳的运行速度有快有慢,所以五星与太阳会合的天数,有时多有时少,不能用固定的数值来确定其度数。

第二部分续:

其次,有人说计算五星运行轨迹,应该加上纬度变化。因为五星出入黄道,都有固定的距离。而且木星、土星、火星与太阳冲的时候纬度大,与太阳合的时候纬度小;金星、水星顺行时纬度小,逆行时纬度大。

第三部分:

再次,有人说测量五星位置,应该用恒星作为参考。因为除了用黄道仪测量星体位置外,还应该用弧矢等仪器。通过测量星体与两颗恒星的视距离,根据方法进行计算,才能得到星体的真实经纬度。或者画图也可以避免计算。

当时新法需要的书本和仪器都准备齐全了,多次测算交食(日食月食)和星体凌犯(行星互相遮挡),结果都非常精确吻合。但是魏文魁等人却暗中使坏,宫里的内官也跟着起哄。所以皇帝拿不定主意,就命令天主教耶稣会传教士汤若望所在的钦天监和同属机构认真仔细地研究,务必拿出一个统一的结论。

那一年,汤若望根据新法推算水星的伏见(指水星运行到太阳背后看不见)和木星的位置,都和《大统历》的结果不一样,但新法推算的结果是正确的。他又推算出八月二十七日寅时二刻(凌晨三点到四点之间),木星、火星和月亮会同时出现在张宿六度的位置,《大统历》却推算木星在张宿四度,火星和月亮在张宿三度。到了那一天,结果果然是木星、火星和月亮同时出现在张宿六度! 九年正月十五日辛酉(公元1645年2月17日),清晨将要发生月食。汤若望和《大统历》、《回回历》(伊斯兰历)以及东宫的机构,都分别推算月食的亏损程度、圆缺程度以及发生的时间,精确到分秒。汤若望担心到时候因为云层遮挡而无法观测,就根据各地经纬度差异,推算出河南和山西地区观测月食的时间,然后派官员分别去这两个地方进行观测验证。

那天,汤若望跟罗雅谷、汤若望(此处重复,应为其他人名)、大理评事王应遴、礼部官员李焻以及钦天监的官员登某、魏文魁等人一起去观测台进行观测,只有汤若望的推算结果完全准确无误。后来,河南的观测报告也完全符合汤若望之前的推算,而山西因为当时云层遮挡,无法进行观测验证月食。

皇帝看到月食观测结果,新法比旧法更准确,但是因为正月十五号下雨了,而汤若望把雨水节气定在了十三号,所以皇帝又让他重新上奏解释。汤若望再次回复说:

咱们算节气,有两种方法:一种是平节气,一种是定节气。平节气呢,就是把一年的天数分成二十四份,每一份大概十五天多一点,这就是一个节气。所以,从冬至开始算,要过六十天八十七刻多一点才到雨水节气。以前的方法算出来是十五天正二刻,就是这么来的。定节气呢,是用三百六十度来表示太阳运行一周的天数,也分成二十四份,每一份十五度就是一个节气。从冬至开始算,要过五十九天二刻多一点,太阳运行到六十度的时候就是雨水节气。新的方法算出来是十三天卯初二刻八分,就是这么来的。

太阳运行的速度有快有慢,不是简单的用加减法就能算准的,如果不符合实际的天文现象,怎么能用平均分天数的方法来确定节气呢?用春分来举例就更清楚了。春分,就是太阳运行到黄道和赤道的交点,这时候昼夜等长。旧的方法算出来是二月十四日,说这天昼夜各五十刻。你看,十四日晚上昼夜就已经等长了,那么新的方法算春分在十四日就符合天文观测,而旧的方法算出是十六日,就晚了二天。知道了春分,秋分和其他节气也就都能知道了,雨水节气自然也就没问题了。

后来,天文台在春分前后每天中午都测量太阳的高度。二月十四日测得太阳高度是五十度八分,十五日是五十度三十分。天文台说:北京的北极高度是三十九度五十五分,那么赤道高度应该是五十度五分。春分这天,太阳正好在赤道上,中午的太阳高度应该和赤道高度相等。过了春分,太阳高度就会逐渐增加。现在我们看看十四日测得的高度,加上地半径的差异二分,已经比赤道高度高五分了。原来推算的春分是卯正二刻五分左右,这时候每天太阳的纬度变化大约是二十四分,时间差是二十一刻五分,所以纬度应该增加五分多。到了十五日,加上地半径的差异,已经比赤道高度高三十分了,更别说十六日了!所以春分应该在十四日,而不是十六日。秋分也是同样的道理。 天文台还拿出了《节气图》,上面……

咱们古代的历法,规定一年有三百六十五又四分之一度,这四分之一度就是一天的度数。天上的度数是三百六十度。从冬至开始算,过了九十一天又三十一刻六分,就到了春分,但是这时候太阳在天上的位置已经超过了春分点两度多了。再过二百七十三天九十三刻一十九分,就到了秋分,这时候太阳在天上的位置却还没到秋分点,还差两度多。这说明按照旧历法,春分总是比实际的天文春分早两天,秋分总是比实际的天文秋分晚两天,是不是啊?

十年正月辛丑朔那天发生日食,天经历法预报北京能看到日食,食分是一分十秒。但是全国各地看到的日食情况都略有不同,只有云南和太原看不到日食。日食的初亏、食甚、复圆的时间也都各有差异。《大统历》预报的日食食分是一分六十三秒,《回回历》预报的是三分七十秒,东局推算的结果是日食只遮挡了三十多秒的光。对比下来,只有天经历法的预报最准确。当时朝廷正打算废除《大统历》,改用新历法,管理历法的代州知州郭正中就上奏说:“咱们国家的历法不能完全废除,也不能完全照搬西方的历法。这几种历法各有优缺点,应该综合考虑,把西方的先进方法也吸收进来。”

十一年正月,皇帝下令继续使用《大统历》,但是对于日食的经纬度、朔望月等,因为时间久了会有误差,所以要参考新历法和回回历,几种历法一起用。同年,天经被提升为光禄寺卿,继续负责历法事务。十四年十二月,天经上奏说:“《大统历》安排闰月,只考虑月份有没有中气,新历法更注重合朔的先后顺序。我新上报的十五年新历,十月和十二月的中气,恰好都在下个月合朔之前,所以虽然这两个月没有中气,但实际上并不是闰月。因为中气出现在朔之前,这个中气就应该属于上个月的月末。到了十六年二月,只有惊蛰一个节气,而春分的中气却出现在三月合朔之后,所以二月是闰正月,三月才是二月。” 皇帝这时候已经很了解西历法的精确性了。

到了十六年三月乙丑朔,又发生了一次日食,观测结果再次证明了西历法的准确性。八月,皇帝下令说西历法确实很精确,就决定改用西历法,在全国范围内推行。没过多久就发生了政变,最终没能实行。咱们现在用的历法,就是那时候定下来的。

明朝的官员世袭制度,成化、弘治年间还有人提议改革,到了万历年间就都固步自封了。那些不是历官却懂历法的人,除了郑王世子,还有唐顺之、周述学、陈壤、袁黄、雷宗等人都有著作。唐顺之没留下完整的书,他的观点散见于周述学的《历宗通议》《历宗中经》。袁黄写了《历法新书》,他书中的天地人三元说,是参考陈壤的学说。雷宗也写了《合璧连珠历法》,他们都把回回历融入《授时历》中,虽然达不到郑王世子那样的精妙程度,但在中西历法的理解上,也都有所建树。邢云路的《古今律历考》,有人说是魏文魁写的,但文魁的学问比较肤浅,难怪他注释《授时历》时,都没能理解其精髓。

西方来中国的人,都自称是欧洲人。他们的历法和回回历差不多,但更精密。仔细想想以前,外国懂历法的人大多来自西域,而东南西北其他地方就没什么名气了。(唐朝的《九执律》,元朝的《万年历》,还有洪武年间翻译的《回回历》,都来自西域。)大概是因为尧帝让羲和、仲叔分管四方,羲仲、羲叔、和叔分别以隅夷、南交、朔方为界限,只有和仲只说“宅西”,没具体划定地域,可见当时西方的影响力非常远吧。到了周末,天文历法人才分散了。西域、天方等国与西边接壤,不像东南有大海阻隔,也没有极北的严寒阻挡,所以他们带着书籍器物西行,是很方便的。欧洲在回回国以西,风俗习惯相似,但他们更喜欢追求新奇、好胜。所以他们的历法和回回历同源,但一代代不断改进,最终超过了回回历,这也跟他们好胜的习性有关。羲和失传后,能看到的古籍只有《周髀算经》了,而西方的浑天仪、寒暑五带说、地球是圆的、正方形的计算方法,都无法超出《周髀算经》的范围,由此可见历法的源头了。广泛收集资料,延续几百年中断的历法研究,也是一种继承和发扬古代优秀文化的意思,所以才详细论述这些。