后世制度胜过古代,并经多次改动而更加严密的,祇有历法最为显著。《唐书历志》认为天是运动的物体,时间久了就有差错,不得不多次变动历法以跟上它。这种说法看起来羞不多,其实不对。《易经》说:“天地之道,是以正确昭示于人。”天的运行最为刚健,确实是有规律的,本来没有古今的差异。其岁差盈缩迟疾各种情况,古代无而现在有,是因为其数量很小,积累久了纔显著。古人没有感觉到,而后人感觉到了,并不是天运行的差错。如果天果真是运行久了有差错,那必然参差衰败而没有规律,又从哪儿去修改而使它更严密呢?看史书传志的记载,岁星宫次混乱、太阳运行度数失常的事情,不出现在近代,也可看出这一点。天的运行规律繁复,而人的智力有限,拿着几尺长的圭表,去仰测苍穹,怎么能看清一切而没有遗漏呢?只有综合古人今人的思想,继续前人的业绩而加以扩充修订,大概纔能符合实际。所以不可能制定一成不变的历法。
从黄帝到秦,历法共改了六次。汉共改了四次。从魏到隋,改了十五次。从唐到五代,改了十五次。宋改了十七次。从金到元,改了五次。只有明的《大统历》,实际上就是元的《授时历》,袭用了二百七十多年,未曾改变历法。成化以后,日食月食往往不灵验,议论改变历法的人很多。如俞正己、冷守中这些无知妄说的人就不说了,而华湘、周濂、李之藻、邢云路这些人颇有见解。郑王世子朱载堉撰写了《律历融通》,进献《圣寿万年历》,他的说法来源于南都御史何瑭,深得《授时历》的旨意,而又能补正它的不足。主管官员拘泥于旧说,当事者又害怕变革,都予以阻拦而未能推行。崇祯年间,朝廷议论采用西洋新历,皇上命令阁臣徐光启、光禄卿李天经先后管理此事,编成《历书》一百三十多卷,多能提出古人所没能提出的看法。当时平民魏文魁上疏抨击新历,皇上下诏设立两局来推算检验。经过几年校核检测,新历特别严密,然而也没来得及颁行。由此看来,历法本来就没有使用长久而无差错的,怎么能不随时修改,以求合乎天的运行呢!
现在采集各家说法中有助于历法的,著录在篇首。而《大统历》则叙述它的立法的本原,以补《元史历志》的不足。《回回历》始终都属于钦天监管理,与《大统历》参互使用,也附录在这里。
历法沿革
吴元年十一月乙未冬至,太史院使刘基率领他的下属高翼进呈戊申《大统历》。太祖下谕说:“古代冬末颁布历法,太迟了。现在在冬至,也不好。应该在十月初一,着焉法令。”洪武元年,改太使院为司天监,又设置回回司天监。皇上下诏召元太史院使张佑、回回司天太监罴的儿等共十四人,不久又召回回司天台官郑阿里等十一人到京,讨论历法。三年,改司天监为钦天监,下设四科:天文、漏刻、《大统历》、《回回历》。以监令、少监统率他们。每年制订《大统民历》《御览月令历》《七政躔度历》《六壬遁甲历》《四季天象占验历》《御览天象录》,各在适当的时候上呈。发生日食月食的分秒时刻、起复方位,事先桌报皇上知道。十年三月,皇上与群臣讨论天和日月金木水火土七政的运行,群臣都用蔡氏的左旋之说来应对。皇上说:“朕自起兵以来,仰观天象,天向左旋转,七政向右旋转,历术家的说法,确实而不可改变。你们还墨守着蔡氏的说法,难道造就是所谓格物致知的学理吗?”十五年九月,诏令翰林李种、昊伯宗翻译《回回历书》。
十七年闺十月,漏刻博士元统进言说:“现行历法以《大统》为名,而积分还继承《授时历》的数目,这不是重视王朝肇始和敬重皇上即位的做法。况且《授时历》以元至元辛巳年为历元即计时起点,至洪武甲子年已累计一百零四年,年代久速,日数盈余,渐渐地与天的运行度数有误差,应该修改。七政运行不齐,其中的道理很深奥。听说有一个叫郭伯玉的,精通数学的道理,应召来令他推算,以制成一代的历制。”皇上答复可以,提拔元统焉监令。元统于是取用《授时历》,除去其中的一年长度消长的办法,分析它的条例,共得四卷,以洪武十七年甲子为历元,命名为《大统历法通轨》。二十二年,改监令、监丞为监正、监副。二十六年,监副李德芳上疏说:“监正元统改用洪武甲子年作历元,不采用一年长度消长的办法,以此考核鲁献公十五年戊寅天时正点冬至,比以至元辛巳年为历元,差囚天半还多。现在应当恢复以辛巳年焉历元及一年长度消长的办法。”奏疏呈入后,元统上奏辩解。太祖说:“两种说法都难以凭信,只有验证七政交会时运行度数没有差错的纔是对的。”从此《大统历》历元是洪武甲子年,而推算仍然依照《授时历》的办法。三十一年,撤鹞回回钦天监,《回回历》科仍旧保留。
永乐年间迁都顺天,仍然使用应天冬夏昼夜的时刻,到正统十四年纔开始改用顺天的数据。这年冬天,景帝即位,天文生马轼上奏说,昼夜时刻不宜改变。皇上下发廷臣集体商议。监正许惇等说:“前监正彭德清测算得到北京的纬度是四十度,比南京高出七度多,冬至白天长三十八刻,夏至白天长六十二刻。奏请批准改写进《大统历》,永远以此为确定的模式。马轼所言荒诞虚妄,不足听信。”皇上说:“太阳出入的度数,应当采用四方的中央的度数。现在京城在尧幽都地方,怎么可以作为标准?此后制定历法,仍然采用洪武、永乐的旧例。”
景泰元年正月辛卯,卯时后段三刻月食。钦天监官员误推算焉辰时前段一刻,以致失去救护。下交法司审讯,定罪服徭役。皇上诏令宽宥他们。成化十年,因司天监官员多不称职,提拔云南提学童轩为太常寺少卿,管理司天监事务。十五年十一月戊戌望日,月食,司天监推算又失误,皇帝认为天象精微渺茫,没有怪罪他们。十七年,真定教谕俞正己上呈《改历议》,皇帝下令礼部及童轩参考。尚书周洪谟等说:“俞正己只根据《皇极经世书》及历代天文志、历志推算节气和初一,又根据自己的意思创造八十七年约法,每月大小相问。轻率狂妄,应惩治他的罪行。”于是将俞正己投入钦犯监狱。十九年,天文生张升进言修改历法。弘治年间,月食的推算多次不应验,日食的推算也出现错误。
正德十二、三年,连续推算日食的韧亏和复圆,都不相,符合。于是漏刻博士朱裕进言说:“元至元辛巳年距今已二百三十七年,年岁久了不可能没有差错,如不酌情加以增减,恐怕越久差得越远。请求选派大臣总管此事,命令本监官吏生员一半人用古法推算,一半人用新法推算,两种方法相互验证,回回科用西域《九孰历法》推算验证。仍然派遣官员到各省,观察土圭来推测节气的早晚。反复参照比较,那么日食月食的时刻就可以准确,而七政的运行也可以整齐。”礼部答复说:“朱裕和监官的历法学识未必都精湛,今年十月望日月食,中官正周濂等所推算的,与古法及朱裕所上奏的不同,请到期考察验证。”接着周濂等进言说:“太阳运行的度数每年后退一分五十秒。今年是正德乙亥年,距元至元辛巳二百三十五年,赤道上的岁差,应当后退三度五十二分五十秒。不经过订正,推算怎么能相符合。臣审查校验,求得正德丙子年前天时正点冬至节气应焉二十七日四百七十五分,确定辛卯日丑时前段一刻,太阳运行到赤道箕宿六度四十七分五十秒,黄道箕宿五度九十六分四十三秒为历元。气、闰、转、交四应,以及周天黄道赤道,各类数据表,都根据岁差,随时改正。希望命令礼部大臣和钦天监正管理这件事。”礼部上奏说:“古代的历法不能轻易改变,请求沿用旧法。另外选择精通历学的人,和周濂等用新法参证检酸,再上奏禀报。”皇上听从了。
十五年,礼部员外郎郑善夫进言说:“日月亏食,日食最为难测。大致月食的程度,只看距离交点的远近,另外没有四季的增减,而且月亮体积小光线弱周围的空间大,八方所见到的都相同。如果太阳被月亮掩盖,则太阳大而月亮小,太阳在上而月亮在下,太阳逮而月亮近。太阳的运行有四季的差异,月亮的运行有青、白、朱、黑各二加黄道共九道的分别。所以南北观察到的景象不同,时间也有差异。必须根据地方立标尺观测,按照时间求得吻合。如正德九年八月辛卯日食,历官预报日食程度为八分六十七秒,而福建、湖广地方,最终达到了全食。时刻分秒,怎么能相同?现在应按照日月食更改历元,时刻分秒,一定要将零数分割完毕。不然,积累多年,太旸运行的远近、月亮在月初月底出现的方位,又不符合了。”皇上没有答复。十六年,因南京户科给事中乐护、工部主事华湘通晓历法,都提升焉光禄寺少卿,管理钦天监事务。
嘉靖二年,华湘进言说:“古今善于制定历法的有三家,汉《太初历》用音律,唐《大衍历》用蓍草占卜,元《授时历》用日晷测影,最为接近真实。想订正历法而不登观象台测日影,都是空话和缺乏根据的看法。希望准许臣暂时停止上朝参拜,率领中官正周濂等,赶在冬至前到观象台,昼夜观测推算,逐日逐月记录,直到明年冬至,以验证二十四节气、春分秋分夏至冬至及日月每月初一同时出现、太阳月亮的运行、黄道赤道、早晨黄昏时中天南方的星宿、七政和四余的运行度数,与元辛巳年所测定的数据相比,异同如何,依次记录禀告。另外请救命礼部访求延聘精通历法敷术的人,征召到京城,命令他们详细测定岁差,以完成本朝的历制。”下发礼部集体商议,而乐谨说历法不能改动,与华湘很不相同。礼部上报说:“华湘想自己观测,不是没有见识。请两位臣子各自完全说出自己的见解,穷尽所有相同相异之处,以与天道相协调。”皇上听从了。
七年,钦天监上奏说:“闺十月初一,按《回回历》推算日食程度二分四十七秒,按《大统历》推算不发生日食。”后来没有发生日食。十九年三月癸巳初一,台官报告要发生日食,后来没有发生日食。皇上很高兴,以为是上天关照自己,然而实际上是由于推算的疏误。隆庆三年,掌管钦天监事务的顺天府丞周相刊印《大统历法》,其中历法源流部分逐一叙述古今各种历法的异同。万历十二年十一月癸酉初一,按《大统历》推算日食程度九十二秒,按《回回历》推算不发生日食,事后《回回历》应验。礼科给事中侯先春于是进言说:“近年月食在酉日而预报说在戌日,月食将要达到全食了却预报说不到九分,差错太大了。《回回历》科推算日食月食,五星冲犯,最为精密,何不编入《大统历》中,以备考察检验。”皇帝下诏许可。二十年五月甲戌夜发生月食,钦天监官员推算差错一天。
二十三年,郑王世子朱载堉迄献《圣寿万年历》、《律历融通》二书。奏疏大致说:“高皇帝推翻元朝时,元的历法使用不久,节气和朔日都没有差错,所以没有改制历法,只是斟酌修订而已。积累年岁久了以后,节气和朔日逐渐有误差。《后汉书,律历志》说‘每遇三百年,历法就应改制’。现在以万历为历元,而到万历九年辛巳正好到了‘历法改制’的时间,又合‘干卦用九’的意思,历元正在这时。臣曾拿《大统历》和《授时历》进行比较,考察古代则节气差错三天,推算现时则时间差错九刻。误差虽然祇有九刻,如处在夜半之际,误差就隔了一天。节气相差一天,则安排闰月就相差一月。闰月相差一月,则时间就差了一季。时间差了一季,则年岁就相差一年。其失误难道是微小的吗?因为《授时历》削减日长的分数太多,所以出现预报日期比天象早的失误;《大统历》不削减日长的分数,所以出现预报日期比天象晚的失误。因此汇合两家的做法,酌情选取折中的数据,确立为新的比率,编撰成书,主要意旨出于许衡,而与许衡的历法不同。黄钟是律历的根本,但旧有历法很少谈到它,新历法就以推算音律的阴阳变化为首。尧的时候冬至时太阳运行在二十八宿的位置,何承天推算在女宿十度左右,一行推算在女宿和虚宿之间,元代人的历法论述也说在女宿、虚宿交界的地方。而《授时历》考求,却在牛宿二度。《大统历》考求,却在危宿一度。相差二十六度,都不与《尧典》相合。新历法向上考求尧元年甲辰年,夏至正午,太阳在柳宿十二度左右,冬至正午,太阳在女宿十度左右,心宿昴宿作为夏至冬至黄昏时的中星,各离午时前段不超过半个宿次,与何承天、一行两家的说法相合。这些都是与旧历法显著的不同处,其余详见《历议》。希望敕令大臣名家参订采用。”
朱载堉的历法首先是推算太阳的往返。选取嘉靖甲寅年焉历元,一个元纪为四千五百六十年,一个期实一千四百六十一年,节气岁差一秒七十五忽.岁周和气策没有固定的比率,各自根据岁差推求而采用。律应即是气应五十五日六十刻八十九分,律总旬周六十日。其次是推算朔闰。朔望弦的度数和《授时历》相同,闰应十九日三十六刻十九分。再其次是推算太阳的运行度数。太阳平均日行一度,运行周期即是天周三百六十五度二十五分,半周为一半,象限长度又为一半,辰的长度是运行周期的十二分之一。黄道、赤道的岁差,盈初缩未限,缩初盈末限,都与《授时历》相同,周应二百三十八度二十二分三十九秒。按《授时历》求太阳运行度敷的方法是,用周应加积度,规定从虚宿七度算起,它的周应就是从虚宿七度到箕宿十度的数字。《万年历法》用周应碱积度,规定从角宿初度算起,它的周应是从箕宿十度到角宿初度的数字,应当是二百八十六度四十五分。现在数字不相合,可能有错误。再其次是推算晷影和滴漏。北极出地的度数,冬至、夏至正午晷影的长度和冬至夏至昼夜长短的刻敷,都以京师焉准。参照岳台的测量数据,可以看出各处因距离不同引起的差数。再其次是推算月亮运行。月平行度、转周、转中,与《授时历》相同。离周即是迟疾限三百三十六限十六分六十秒,离中折半,离象又折半。转差一日九十七刻六十分。转应七日五十刻三十四分。再其次是推算交道。正交、中交与《授时历》相同。距交十四度六十六分六十六秒。交周、交中、交差,与《授时历》相一致。交应二十日四十七刻三十四分。再其次是推算日月食。日食交外限六度,定法六十一,交内限八度,定法八十一。月食限定法与《授时历》相同。再其次是推算五星。合应:土星二百六十二日三千零二十六分,木星三百一十日一千八百三十七分,火星三百四十三日五千一百七十六分,金星二百零三日八千三百四十七分,水星九十一日七干六百二十八分。历应:土星八千六百零四日五千三百三十八分,木星四千零一十八日六千零七十三分,火星三百一十四日零四十九分,金星六十日一千九百七十五分,水星二百五十三日七千四百九十七分0周率、度率及晨夕伏现度,都与《授时历》相同。
他论述岁余,说:“阴阳消长的道理,是逐渐变化而积累,没有不从秒开始的。《授时历》考察古代,在一百年的交接处就马上加一秒,从道理上讲不妥当。比如鲁隐公三年辛酉年,往下距离元至元辛巳年二千年,用《授时历》的方法计算,这一年该加二十分,推得庚午日六刻,是这一年的天正冬至。鲁隐公四年壬戌年,往下距离元至元辛巳年一千九百九十九年,按算法该加十九分,推得乙亥日五十刻四十四分,是这一年的天正冬至。两个冬至相减,得数相距三百六十五日四十四刻四十四分,那么这一年的岁余是九分之四日,而不是四分之一日了。历法的荒谬,没有比这个更严重的了。新历法酌情考虑,如果每年增减二秒,往上推,就与昭公己丑年不合;增减一秒至一秒半,又与僖公辛亥年不合。现在大致取一个折中数,方法是将定距自乘,再乘以七除以八,得到的百位数,化为分,得敷焉一秒七十五忽,逭样辛亥、己丑都可以兼顾了。”
他论述太阳运行,说:“古历见于《六经》并明确可考的,没有比得上太阳运行和中星的了。而推算家很少有能透彻理解的,都是因为不知道夏历、周历的差异。大致夏历以节气为主,周历以中气为主。何承天以正月甲子夜半合朔雨水为历元,进与夏历不合,退又不合周历。所以近代推算《月令》《小正》的,都不能与古代相合。臣曾以新历法的岁差,向上考察《尧典》的中星,那么所谓的四仲月,大概是从节气的开始到中气的末尾,三十天内的中星而已。后世拘泥于春分秋分夏至冬至,这也就错了。”
他论述测量北极出地,说:“从汉到齐、梁,都认为纽星就是不动的地方。只有祖佢之测到纽星离北极有一度多。从唐到宋,又测到纽星离北极三度多。《元史,历志》依从三度,大致还没有定论。新历法不测纽星,用日影来检验。在正方的几案上,在一周天的度数内暂时指定一度作为北极,从此度向右旋转,数到六十七度四十一分。就是夏至太阳运行到的位置。又旋转到一百一十五度二十一分,就是冬至太阳运行到的位置。向左旋转,度数也一样。四处和圆心共五处,各钉一枚针。在冬至夏至正午,将几案直立向南产生日影,使三枚针的日影相合,然后悬着绳子取到中线,又取方十字划出界限,看横界上距北极的度数,就是北极出地的度数。”
他论述日晷测影,说:“何承天立圭表测日影,开始知道从漠以来,冬至都比天象晚三天。所以推算晷影,是制定历法的重要工作。《授时历》也凭借晷影作为根本,而《历经》不记载推算晷影的方法,这是缺陷。现在用北极出地的度数,兼用弧矢割圆的方法推求,有望穷尽它的本源。又随着地势的高低,确定差数来表现它的变化,这是以前所没有的。”又说:“《授时历议》根据《漠书,律历志》鲁献公十五年戊寅岁正月甲寅朔旦冬至,引用为首例。献公十五年往下到鲁隐公元年己未,有一百六十一年,时间不在春秋时段以内是很明白的了。而《元史,历志》却说‘自春秋献公以来’,又说‘昭公冬至,就是太阳运行失常的证据’,是错误的。献公甲寅冬至,没有别的依据,只有刘歆《三统历》这样说。难道《左传》不可信,而刘歆却可信吗?太初元年冬至在辛酉,刘歆却认为是甲子,相差三天,这都尚且不能知道,还能够推知上下几百年吗?所以大凡春秋前后千年之间,气朔交食,《长历》、《大衍历》所推算的大致对,而刘歆、班固所说的完全是错的。”又说:“《大衍历议》说宋元嘉十三年十一月甲戌,影长是太阳运行度数的异常变化,《授时历议》也这样说,臣私下认为这是错的。如果太阳运行超出了常规,应当像岁差一样,渐渐地变化。今年已经不合,来年难道能又相合吗?大概前人的测量,有的不严密罢了。冬至的日影有一丈多长,圭表高,日影长,那么日影就虚而淡。有时设置望筒、副表、影待之类来求实影,然而望筒或许有低昂,副表、影符或许有前后,所用的圭表或许稍有倾斜,圭面或许稍有不平,冬至夏至前后几天的日影,进退只在毫厘之间,也很难辨认。何况委托的人,不知是否恰当。边远的地方,既然不是亲眼所见,他人所报告的晷影,难道可信吗?”
他论述漏刻,说:“日月带食出入,五星晨昏伏现,历家制定历法都以日晷漏刻为准。而日晷漏刻也随着地势的南北,纬度的高低有差异。元人以燕京为都城,他们的《授时历》中日月五星出入的早晚,四季日夜的长短,都以大都的日晷漏刻焉准。国朝初年建都金陵,《大统历》日晷漏刻改为依从南京,冬至夏至相差三刻多。现在推算日月食的分秒,南北东西等差及五星定伏定现,都根据元人的旧法,而单单改变了漏刻,因此互相违背出现错误。所以新法日晷漏刻,照样依据元朝的老数字。”
他论述日食,说:“日道和月道相交点有两处,如果日月正好在交点相会,就是全食,如果只在交点前后相近的地方相会,就会发生日食但不是全食。这是天的相交限度。还有人的相交限度,如果在中原是全食,那么在太阳的正下方,亏食只有一半,到僻远的地方,则是日月相会而不食。几个地方交换反过来看,也是一样。为什磨呢?太阳像一个大的红丸子,月亮像一个小的黑丸子,共同悬挂在一根线上,太阳在上而月亮在下,如果从正下方望去,黑丸子必定掩盖红丸子,就像日全食;到旁边观看有远近的差别,那么日食的程度就有多少了。春分以后,太阳在赤道北面运行,交外偏多,交内偏少。秋分以后,太阳在赤道南面运行,交外偏少,交内偏多,所以有南北差。冬至以后,太阳在黄道柬面运行,午前偏多,午后偏少。夏至以后,太阳在黄道西面运行,午前偏少,午后偏多,所以有东西差。中午仰视太阳就高,早晚平枧太阳就低,所以有距午差。中午前日食看见得早,中午后日食看见得迟,所以有时差。这种种差别,只有太旸纔有,月亮没有。所以推算交食,只有太阳很困难。想推算各个地方的变化,必须到那个地方,考察晷影的短长,测量星辰的高低,纔有希望得到。《历经》推定的数据,只是根据燕京所见到的来立说而已。老话说:‘月亮运行内道,日食多能应验。月亮运行外道,日食多不应验。又说:‘天的相交限度,虽然是在内道,若在人的相交限度之外,也同外道相似,也不发生日食。这种说法大致不错,但不全对。假如在夏至前后,在十二辰的寅卯酉戌之间发生日食,人向东北、西北观看,那么外道食分反而多于内道了。太阳体积大于月亮,月亮不能完全掩盖,有时遇到全食,而阳光四溢,形状如同金环,所以太阳没有日食十分的道理。即使全食,也只有九分八十秒。《授时历》日食,阳历限六度,定法六十,阴历限八度,定法八十。各将其限度,除以定法,都得到十分。现在在它们的定法下各加上一,用限度相除,就得到九分八十多秒了。”
他论述月食,说:“暗中虚的东西,是影子。影子遮蔽月亮,没有早晚高低的差异,四季地区的不同。比如悬一粒黑丸子在黑暗的屋子中,在它的左面点燃蜡烛,右面悬一粒白丸子,如果烛光被黑丸子遮蔽,那么白丸子就接受不到光线了。人在四面观看,所见到的没有不同。所以月食役有时差的说法。自从《纪元历》虚妄地定下时差,《授时历》也因袭它,是错误的。”
他论述五星,说:“古法推算五星,不知道变敷的加减。北齐张子信长期仰观天文,知道五星有盈缩的变化,应当加减以求每天的运行度数。五星出入黄道内外,各自有自己的远近轨道,根据和太阳的远近有快慢,它们变化数字的加减,就好像路程的曲直正斜。宋代有人说:‘五星的运行度数,只有在停留逆行的时候差异最大。在黄道内前进的,它后退必然向外,在黄道外前进的,它后退必然向内。它运行的轨迹好像沿着一片柳叶,两端比中间尖,往返的轨道相差很远。所以五星运行在两端较慢,因为它是斜着运行的缘故。中间的运行较快,因为它道路便捷的缘故。前代修订历法,只是缯减旧法而已,不曾实际考察天体的运行度数。办法是必须测量检骏每晚黄昏、夜半、拂晓月亮及五星所在的度秒,,用本子记录下来。满五年,除去中间阴云和五星出现在白昼的日数,可以测得三年的实际运行,然后可以推算补缀了。”
奏疏上呈,礼部尚书范谦上奏说:“岁差的规律,从虞喜以来,每代都有岁差规律的议论,最终没有统一的规矩。用来求岁差的方法,大致有三种:考察月令的中星,测量冬至夏至的日影,检验交食的分秒。用衡管考察,用圭表测量,用漏刻验证,这也可望得到结果了。历家用周天三百六十五度四分之一度,来记录日月五星的运行,又分一度为一百分,一分为一百秒,可以说很精密了。然而浑天仪直径只有几尺,分布周天的度数,每度不到一指头宽,又在哪儿去安置分秒呢?至于树立的圭表不过几尺,刻漏的筹码不过几寸。以天的高而且广,而用几尺几寸大小的东西来测量它,想要丝毫不差,不是太难了吗?所以当它差在分秒之间,无法检验,到差错超过一度,纔可以观察了。这就是穷尽了古往今来人们的智慧和灵巧,还不能完全测算到天体变化的原因吧。就以郑王世子来说,将《大统历》、《授时历》两历进行比较,考察古代气差了三日,推究今日时间差了九刻。时间相差九刻,在亥时和子时之间就移动了一日,在晦日和朔日之交就移动了一月,这是可以在现在验证的。如果时间前移,那新月就出现在二日的黄昏,如果后移,新月就出现在四日的晚上了。现在似乎还没有到逭一步。郑王世子的书应该下发钦天监参订测验。世子用心于历学,博古通今,应该赐敕书奖励。”皇帝听从了他的意见。
河南佥事邢云路上书说:“治理历法的要点,没有超过观测天象、测量日影、测算天时、筹划计算四件事。现在丙申年日至,臣测得在乙末日未时后段一刻,而《大统历》推算在申时后段二刻,相差九刻。而且今年立春、夏至、立冬都正巧在子时一半的时刻。臣推算立春在乙亥,而《大统历》推算在丙子;夏至在壬辰,而《大统历》推算在癸巳;立冬在己酉,而《大统历》推算在庚戌0相隔都是一天。如果正好元日在子时的一半,就该把正月初一退到上月的末尾,而朝贺大礼就在正月二日了。这难道是小事吗?闰八月朔日,日食,《大统历》推算初亏在巳时后段二刻,接近日全食,而臣测到初亏在巳时后段一刻,亏食只有七分多。《大统历》实际落后于天象将近二刻,那么闰应及转应、交应,都各应增减了。”钦天监见到邢云路的奏疏,十分厌恶他。监正张应侯上奏斥责,说他超越本分,狂妄惑众。礼部尚书范谦却说:“历法是国家的大事,士大夫应当讲求,不是从事历法的人能够私自占有的。法律禁止的,只是说妖异吉凶而已。钦天监官员墨守成法,不能修改以符合天象。幸好有邢云堕这样的人,应当与他和衷共事,不应该妒忌。请求任命邢云路管理钦天监事务,率领督促部属,精心测量,以制成大典。”奏议上呈,皇帝没有答复。
三十八年,钦天监推测十一月壬寅朔日日食的程度及初亏复圆的情况,职方郎范守己上疏驳斥他们的错误。礼官于是请求广招懂历学的人,命他们与钦天监官员日夜推测,以求历法没有差错。这时五官正周子愚进言说:“大西洋来归顺的远方臣子庞迪峩、熊三拔等,带有那个国家的历法,多是中国典籍中没有的。请求仿照洪武年间翻译西域历法的先例,选取懂历法的大臣率领钦天监官员,将各种书全部翻译,以补充典籍的缺陷。”在此之前,大西洋人利玛窦进贡土产,而庞迪峩、熊三拔及龙华民、邓玉函、汤若望等先后到来,都精通天文历法。礼部于是上奏说:“精通历法,像邢云路、范守己这样的人,被时人推重,请求改授京官,共同管理历法事务。翰林院检讨徐光启、南京工部员外郎李之藻也都精心研究历法原理,可以和庞迪峩、熊三拔等共同翻译西洋历法,让邢云路等参订修改。然而历法的粗疏严密,没有比日月食表现更明显的了,想要议论修订历法,必须注重测量检验。请命令有关部门整治仪器,以便于事情的进行。”奏疏呈入,留在宫中。不久邢云路、李之藻都被召到京城,参预历法事务。邢云路根据他所举的理论,李之藻则以西洋历法为宗旨。
四十一年,李之藻已改任南京太仆少卿,上奏呈上西洋历法,大致说了钦天监推算日月交食时刻亏分的错误,并极力推荐庞迪峩、熊三拔及龙华民、阳玛诺等,说:“他们论述天文历法,有中国过去的贤人所赶不上的,不但讨论运行的度数,而且又能说明其所以然的道理。他们所制造的观测天象太阳的仪器,每种都精妙绝伦。当时各种事情都因循守旧,没有功夫来设置翻译机构。
四十四年,邢云路进献《七政真数》,说:“推算历法的方法,必须用两个交点相对。两个交点正确,中间的时刻分秒的度数,一一可以查考落实。日月的交食,五星的冲犯,都是日月五星的交会。两个交点相对,互相说明,日月五星的事情就完全清楚了。”玉启元年春,邢云路又详细叙述古今日月交食的几件事,以说明《授时历》的粗疏,证明新历法的精密。奏章下发礼部。四月壬申朔日日食,邢云路所推算的食分时刻,和钦天监所推算的互有差异。自己说新历法十分精密,到时检验,都与天象不合。邢云路又曾论述《大统历》宫度的交界,应当用岁差来考定,不应当仍然用《授时历》三百年前所测定的数据。又说月份和十二辰的对应与北斗斗柄的指向没有关系,北斗斗柄所指有岁差,而月份和十二辰的对应没有变动。这些都是确切的评论。
崇祯二年五月乙酉朔日日食,礼部侍郎徐光启按照西洋历法预测,顺天府见日食二分多,琼州日全食,大窒以北不发生日食。《大统历》《回回历》所推算的,顺天府的时分时刻,舆徐光启不同。后来徐光启的算法应验了,其它的都有疏误。皇帝严厉指责钦天监官员。这时五官正戈丰年等进言说:“《大统历》是建国初年制定的,实际上就是郭守敬的《授时历》,二百六十年丝毫没有增减。从至元十八年制定历法,遇了十八年到大德三年八月,已经预报要发生日食而没有发生,六年六月又发生日食而没有推算出来。当时郭守敬正主持太史坑事务,也无可奈何,更何况那些拘谨守法的人呢?现在如果遵循旧法,往后不能没有差错。”于是礼部上奏设置机构修改历法,皇帝就让徐光启统领修订历法。徐光启进言说:“近代谈历法的各家,大都尊崇郭守敬的历法,至于说岁差有循环,岁寅有参差,天有纬度,地有经度,各宿有本行,月亮五星有本轮,日月有真正的会合、视觉的会合,都是古代没有听说遇的,祇有西洋历法纔有。而舍弃这几绦法则,那磨日月交食五星冲犯,最终不会有切合的理论。应该取来相互考订,使它与《大统历》汇合而一。”
事后徐光启上奏修订历法的十件事:第一,讨论岁差,每年束行逐渐变长逐渐变短的数据,以纠正自古以来一百年、五十年、六十年多少不同的说法。第二,讨论岁实小余,古代多,现在少,逐渐在改变,以及日影长短年年不同的原因,以确定冬至,以订正气和朔日。第三,每天测量太阳运行的经度,以确定盈缩加减差的准确比率,东西南北高下的差异,以推算太阳的运行。第四,晚上测量月亮运行的经纬度数,以确定交转迟疾的准确比率,东西南北高下的差异,以推算月亮的运行。第五,精密测量各宿的经纬运行度数,以确定日月五星盈缩、迟疾、顺逆、违离、远近的数据。第六,精密测量五星的经纬运行度数,以确定小轮运行的迟疾、停留逆行、伏现的数据,东西南北高下的差异,以推算五星冲犯。第七,推算黄道赤道问变宽变窄的度数,精密测量黄道赤道的距度,以及月亮五星各道与黄道相距的度数,以确定交转。第八,讨论日月离交点的远近及真正会合、视觉会合的原因,以确定距午时差的准确比率,以订正日月食。第九,测量太阳运行,考察出南北极出入地的度数,以确定周天的纬度,以弄清日月五星的运行。通过月食考察确定东西相距地轮的经度,以确定交食的时刻。第十,依照唐、元的方法,在各地测量南北极出入地的度数,地轮的经纬度,以求昼夜晨昏的长短,以订芷交食有无、先后、多寡的数据。并以此机会推荐南京太仆少卿李之藻、西洋人龙华民、邓玉函。皇帝批覆同意。九月癸卯开设历局。三年,邓玉函去世,又征召西洋人汤若望、罗雅谷译书演算。徐光启进升礼部尚书,仍然统领修订历法。
这时巡按四川御史马如蛟推荐资县诸生冷守中精通历学,将他所呈递的历书送交历局。徐光启极力驳斥它的荒谬,并预推第二年四月四川月食的时刻,叫他们到时测量比较。四年正月,徐光启进呈《历书》二十四卷。夏四月戊午,夜望月食,徐光启预推了分秒食刻方位。上奏说:“日食各地不同,就用地的纬度算它的食分的多少,用地经度算它的加时的早晚。月食的分秒,各地相同,只是用地经度推求它的先后时刻。臣从地图大致推算,开列各布政司月食初亏度分,食分多少既然天下都相,同,那么余率就可以类推,不像日食在不同的经纬各不相同,必须详细算出。又月体十五分,那么完全进入虚暗的空间也只有十五分。现在推算二十六分六十秒,是虚暗的空间大于月亮,如果月食时离交点较速,月体就不能完全进入虚暗空间,只能从月体来说它的分数。这晚上的月食,极其接近交点,所以月亮进入虚暗中十五分就是食既,再进去十一分多,就是生光,所以是二十六分多。如《回回历》推算十八分四十七秒,大致和这种方法相同。”后来四川报告冷守中推算的月食实际差二时,而新方法密切相合。
徐光启又进呈《历书》二十一卷。冬十月辛丑朔日日食,新法预推顺天见食二分十二秒,应天以南不发生日食,大漠以北全食,按惯例因京师见食不到三分,不采取救护措施。徐光启说:
月食在晚上,加时的早晚,苦于没有依据。只有日食按日晷定时,无法变动。所以历法的粗疏严密,这是确实的证据。臣等编纂新历法,逐渐就绪,而以后一次的交食,为期还速,现在不和钦天监臣共同见证,到历法编成以后,将用什么证实?而且这次日食必须观测,还有另外的理由。
旧历法日食在正中,就没有时差。现在这次日食既然在中午,而新历法仍然有时差,是因为日月五星运行都沿着黄道,不由赤道。旧历法所说的中是赤道的午中,而不是黄道的正中。黄赤二道的中,只有冬至夏至加时正午,纔可能同度。现在十月朔离冬至的度数还远,两个中的差,有二十三度多,难道可以因为加时接近中午。就不加不减吗?正好碰上这一天,又是这个时刻,足以验证关于时差的方法,这是第一点。
本地的经度,没有得到准确的比率,那么加时就难以确定,它的数据一定要从交食时测验几次,纔可以勘测统一。现在这次日食依照新方法测量,它的加时刻分,或许前后不合,应当取从前所记的地经度数,斟酌改定,这可以求得里差的准确比率,这是第二点。
定时差的方法,祇知道在中没有加碱,但不知道中还要分黄道和赤道,现在一经过目睹,就人人都知道加时要根据黄道。由此及彼,其它方法也是一样,由此足以知道学习很容易,这是第三点。
即使分数很少,也应该详细测量,以求应验。皇帝觉得他说得对。到时,徐光启率领钦天监大臣预点日晷,调整壶漏,用测高仪器测量食甚时日晷的高度。又在暗室中斜着开了一道缝隙,设置窥管、远镜以测亏圆,画日体分数图板以确定食分。这次日食的时刻、高度全都相合,只是食甚分数不到二分。于是徐光启进言说:“现在食甚的度分密切相合,那么经度里差就不必更改了。只有食分不合,原来推算的大概是因为太阳光大,能够减小月亮的影子,一定会亏食到四五分以上,纔能与原来的推算相合。然而此次观测,是使用暗室窥管,所以能得到这样的分数。如果只凭眼力,或用盆子装水来照映,就会眩耀不定,恐怕还不止这个数了。”
当时有满城平民魏文魁,着了《历元》《历测》两本书,叫他的儿子魏象干将《历元》进献给朝廷,通政司送到历局考索验证。徐光启摘录了应当极力论证的七个问题:第一,岁实从汉以来,代代有减差,到《授时历》碱为二十四分二十五秒。依郭守敬的方法一百年碱一秒,现在应当是二十一秒多。而《历元》用赵知微的三十六秒,反复加很多。第二,根据弧背求弦矢,应当用密率。现在《历测》中还用径一围三的方法,不合弧矢的真实数据。第三,盈缩限,不在冬至夏至,应在冬至夏至后六度。现在考察太阳的运行,春分到夏至,夏至到秋分,这两限中,日时刻分不等。又立春到立夏,立秋到立冬,这两限中,日时刻分也不等。从测量可以见到。第四,说月亮最远运行快,最近运行慢,而且用圭表测到它,不对。月亮的快慢是入转内的事,圭表测高下是入交内的事,岂容混合推算。而月亮运行在转周之上,又向左旋转,所以最逮向西行最慢,最近向东行最快,旧历法正相反。第五,说日食在正午没有时差,不对。时差所说的距离,不是距赤道的午中,而是距黄道限东西各九十度的中。黄道限的中,有距午前后二十多度的,只依午正加减,怎能必然相合。第六,说交食定限,阴历八度,阳历六度,不对。日食,阴历应在十七度,阳历应在八度。月食则阴阳历都是十二度。第七,《历测》说:“宋文帝元嘉六年十一月己丑朔,日食剩下的部分像钩子一样,白天星星显现。现在用《授时历》推算,只亏食六分九十六秒,郭守敬的历法有错误。”月食天下都相同,日食各地不同。南宋建都金陵,郭守敬的历法制定于燕地,纬度相差八度,时间在十一月那么食差有二分弱,说“日食剩下的部分像钩子一样”,当在九分左右。郭守敬历法推得七分弱,却是密切相合,不是不合。本局现在定日食分数,首先说交,其次说地,再次说时,一样都不可缺。后来魏文魁反复论辩,徐光启再次阐明前面的说法,着成《学历小辨》。
他论述岁实小余及日食变差特别明晰。他说:“岁寅水余,从漠到元逐渐消减。现在新历法确定采用的岁寅,更比元代减少。不知道的人一定会说不仅先于天象,更先于《大统历》。乃至推壬申冬至,《大统历》得己亥寅时后段一刻,而新历法推得在辰时前段一刻十八分。这是为什么呢?大致订正年岁和推算月亮运行相似,冬至没有定率,与定朔、定望没有定率是一样的。朔望没有定率,应用平朔望和它相加减,冬至没有定率,应用平年和它相加减。所以新历法的平冬至,虽在《大统历》前,而定冬至总是在《大统历》之后。”又说:“宋仁宗天圣二年甲子年,五月丁亥朔,历官推算应当有日食而没有日食,各种历法推算都应当有日食。从历法来讲确实应当有日食,而在逭时确实没有日食,现在应当如何解释?日食有变差的方法,月亮在阴历,距交点十度多,按历法应当有日食。而恰好这一天这个地方的南北差,变成了东西差,所以从天体的运行来说,则地心与日月相互参验,确实发生了日食。而从人的眼睛所见到的,日月相距由近变为逮,确实没有日食。所以只有汴京是这样,如从汴京以束几千里,就逐渐看得见日食,到东北一万多里外,就全都看得见日食了。变差随时不同,或多变为少,或少变为多,或有变为无,或无变为有。推算历法的困难,全在这些地方。”不久,徐光启进入内阁。
五年九月十五日,月食,钦天监推算初亏在卯时前段一刻,徐光启等推算在卯时前段三刻,《回回历》科推算在辰时前段初刻。三种方法的异同,招致回答皇帝的诘问。到时观测,阴天有云,月亮没有出现,无法检验。徐光启上疏陈述三种历法不同的原因,说:
时刻的加减,是由于盈缩、迟疾雨差。而盈缩差旧历法从冬至夏至算起,新历法从最远点算起,最速点有行分,只有宋绍兴年间与夏至同度。郭守敬比这晚一百年,相差一度多,所以没有觉察。现在最速点在夏至后六度,这就是两种历法的盈缩差不同的原因。迟疾差,旧历法只用一转周,新历法叫作自行轮。自行轮之外,又有两次轮。这就是两种历法迟疾差不同的原因。至于《回回历》又有不周,或者由于四应,或者由于里差,臣确实不知道其中的缘故。总之,三种历法都依照自己的办法来推算,不能改变自己的办法去迁就。
将来应该讲求的有两条:一是食分多少。日食时,阳光闪耀,每每是先发生日食而人后看见。月食时,云气侵扰,每每人先看见而后发生月食。其中的差异在一分以上。现在想明白地看到真实的食分,近来有造窥管的,日食时,在暗室中引来光影,映照在白的丝织品上,初亏至复圆,分数真实准确,明白不差。月食时用来仰观两个天体离合的时刻,界限分明,与目测完全不同。这就是测定食分的方法。二是加时早晚。测定时间的方法,壶漏是古法,轮钟是新法,然而都不如以太阳和星星作标准。白天用太阳,晚上任选一个星座,都用仪器测量经纬度数,推算得到时间。这是测定时间的方法。两种方法确立后,那各种技术的粗疏精密,丝毫也不能隐藏了。
古今月食,各种史书都没有记载。日食,从汉到隋,共二百九十三次,而在晦日日食的七十七次,在晦日前一日的三次,初二日的三次,其疏漏到这样的程度。唐至五代共一百一十次,而在晦日日食的一次,初二日的一次,初三日的一次,逐渐严密了。宋共一百四十八次,没有在晦日日食的,更严密了,还是有推算要日食而没有日食的十三次。元共四十五次,也没有晦日日食的,还是有推算要日食而没有日食的一次,有日食而没有推算出的一次,傍晚日食而写成白天的一次。至于加时差错在四五刻的,当时已经是这样。可知高速无穷的事情,必须世代积累,纔能逐渐见到它的头绪。所以从汉到现在一千七百年,建立历法的有十三家,而郭守敬的为最优秀,尚且不能没有几刻的差错,而何况对于沿袭旧法的人,怎么能要求他精密呢?
这一年,徐光启又进献《历书》三十卷。笫二年冬十月,徐光启因病辞去了历局的职务,用山东参政李天经代替他。遇了一个月,徐光启去世。七年,魏文魁进言说,历官所推的交食节气都不对,于是命令魏文魁进京测骏。这时论述历法的有四家,除《大统历》《回回历》外,另设立西洋历法为西局,魏文魁焉束局。每一家的说法不同,乱纷纷的像打官司一样。
李天经缮写进献《历书》共二十九卷,另有星宿屏风一座,都是已故宰辅徐光启率领西洋人制订制造的。李天经预推五星冲犯会合行度,说:“闰八月二十四日,木星冲犯积尸气。九月初四昏初,火星土星同度。初七卯时后段,金星土星同度。十一昏初,金星火星同度。用旧历法推火星土星同度,在初七,这就落后天象三日。金星火星同度在初三,造就先于天象八日。”而魏文魁则说,李天经所报告的,木星冲犯积尸与天象不合。李天经又说:“臣在闰八月二十五日夜及九月初一日夜,同礼部臣陈六轮等,用窥管观测,见积尸被几十个小星团团包围,木星与积尸,一起容纳在窥管中。窥管直径只有一寸多一点,两星相距三十分以内的,纔可能同时出现。如觜宿三颗星相距三十七分,就不能同时出现。而魏文魁只根据主观推算,没有经过实测。据他说初二日木星已在柳宿前,那么在此之前难道能越过鬼宿而飞渡吗?”李天经又推算木星的退行、顺行,两次经过鬼宿,它的度分晷刻,不久都应验了,于是魏文魁的说法被废除了。
李天经又进献《历书》三十二卷,并有日晷、星晷、窥管等仪器。八年四月,又献上《乙亥丙子七政行度历》及《参订历法条议》二十六则。
其中七政公说有七则:一是各曜的应敷应修改。日月五星平行起算酌根敷就是应敷,即是某曜某日某时运行到某宫次的数字。现在新法改定的各项应敷,都从崇祯元年戊辰前,冬至后,己卯日子时后段开始。二是测各曜的运行度数,应该用黄道仪。太阳由黄道运行,月亮五星各有自己的轨道,出入黄道内外,不走赤道。如用赤道仪观测,所得到的经纬度数,必须全部用黄道赤道通率表换算,不如用黄道仪实时得到七政的本度方便。三是各方七政运行度数,随地方不同。日月在东西方所见到的交食,时间各有先后,已经不用怀疑了。那么太阳运行产生二十四节气,与月亮五星的掩食冲犯,怎能不与交食同一道理呢?所以新历法各数据表,虽然以顺天府为主,而推算各方的运行度数,也都各有自己的方法。四是各曜的加减分,用平、立、定三差法,还不够。加减平行分以求自身的运行度数,是历家的重要事情。只是天实际上是圆体,与平行不同,旧历用的三差法,都是从勾股平行来确定的,和天体不合。就是各盈缩损益数据,也没有得到真实数字。现在新历法加碱各表,却是用圆治理圆,纔可以与天相合。五是随时随地可以求得各曜的经度。旧历法想得到某日某曜的经度,必须先推算各曜冬至日所运行的宫度宿次,然后用各段日度计算纔能得到。现在的方法不限时间方所,只要查阅本表推算就是了。六是径一围三,不是弧矢的真法。古代历家用直钱测圆形,叫做弧矢法,而计算用径一围三,就错了。现在的立割圆八线表,用法简便而用处大。弧矢等线,只乘除一次,就能得到。七是球面三角三弧形,不是勾股可以完全算出来的。古法测天以勾股焉根本,然而勾股只能解决直角,不能解决斜角。而且天是圆球,球面上与各道相切割产生的三弧形,勾股不能够完全解决它。
论述恒星有四则:一是恒星本行,即所说的岁差,从黄道极算起。各星离赤极的度分,古今不同。距离赤道内外,也古今不同。而距黄极或距黄道内外,却是从古以来一样,所以知道日月五星都沿着黄道运行。恒星的本行,应该从黄遒极起算,作为岁差的比率。二是古今各宿的度数不同。恒星以黄道极为极,所以各宿距星的运行度数,与赤道极时近时速。运行逐渐接近赤道极,即从赤道发出的遇距星的线逐渐变密,本宿的赤道弧就较小。逐渐远离赤极,经过距星的线就逐渐稀疏,本宿的赤道弧就较大。这是因为黄道赤道黄极赤极不同,不是距星有不同的运行,也不是距星移动了位置。如觜宿距星,漠测距参宿二度,唐测一度,宋崇宁年问测半度,元郭守敬测五分。现在测量,不但没有一分,反而侵入参宿二十四分,不是一个证据吗?三是夜半测星定时。太阳沿赤道左行,每十五度为一小时。现在任意测量一颗星距子午圈前后的度分,又用本星经行和太阳经行相加减,得太阳距子午圈的度分,通过它变为真时刻。四是宋时所定的十二宫次在某宿度,现在不能定在某宿度。这是因为恒星有本行,宿度已经右移的缘故。
关于太阳的论述有四条:,一是太阳盈缩的极限,不是冬、夏二至,就是人们所说的最高及最高冲。这个极限年年向右移动,现在已超过了二至后六度多。二是用圭表测量冬夏二至,不是好的办法。在二至前后,太阳南北的运行度数很少,一丈长的圭表,一天的日影的差异不过一分三十秒,则一秒的长度就管六刻多的时间。如果测量误差二三秒,时间就将近二十刻,怎么能准确呢?现在的办法只用春、秋二分,因为这时太阳一天南北运行二十四分,一天的日影差异有一寸二分,即使测量误差一二秒,折算时间也不满一刻,比二至更精密。三是太阳起落的分数,应该从顺天府起算。因各方纬度不同,早晨黄昏的时刻也因此有差异。《大统历》依照应天府推算,所以昼夜长短,日月东西方位和是否带食,推算的都不准确。现在依照顺天府改定。四是平节气不是天时的真节气。旧历法一气的长度,是一年长度的二十四分之一。然而太阳的运行,有快右慢,不能平分。如果平分,那么春分就比天象晚两天,秋分就比天象早两天了。现在全都改正。
关于月亮的论述有四条:一是朔望之外,另外还有损益分,一次加碱不足以完全平衡。旧历法确定月亮匀速运行,推算朔望的加减数,大致五度多,然而上弦和下弦时多少不一,即使是《授时历》也说朔望之外,匀速运行的度数不一定,明白了这个道理,但是没有写进历法。现在在加减之外,再使用一次加减,取名叫二三均数。二是黄白二道的相距度不能确定焉五度,而是时多时少。古今历家根据交食的分数及交泛等,测定黄道白道相距大约五度。然而朔望日之外雨道的相距度数,有增有碱,最大距离达到五又三分之一度。如果一个月有两次交食,在上下弦时用仪表求距离黄道的度数焉五度,就不能与天象相合。三是交行有损益分。罗喉、计都即正交、中交的行度,古今都定为匀速运行。现在仔细测量,月亮有时在交点之上,用匀速去推求,必然与计算不合。因此再设置一次加减,成为交行的均数。四是天象没有紫气。旧历法认为是从闰余中产生,又认为是木星的余气。现在仔细考察各星,没有天象可以说明,可知这是毫无根据地增加的。
关于交食的论述有四条:一是日月影像的直径大小总是不一样的。因为日月有时运行得最高,有时运行的最低,因为相距有速有近,所见到的就有大有小。又因速的时候和近的时候看到月亮反射的光线,有强有弱,所以月亮影像的直径大小不会一样。二是日食正午不是中限,而应以黄道九十度限为中限。南北东西差都是依据黄道,那么时差又怎能不依据黄道来论定它的初段末段以推求中限呢?况且黄道在地平之上的部分,两个象限自有它的高处,也自有它的中限。这个道理不明白,有时该加的反而减,该碱的反而加,凡是加时不合的都是由此产生的。三是日食的初亏和复圆,时刻多少总是不一样的,不是两段时间各折一半的那种说法。视觉的误差能把实际运行变为枧运行,那么用视差来比较食甚的前后,没有不出差错的。根据视差既然食甚前后木一,又怎么能使枧运行前后相等呢?现在用视运行来推算时刻,初亏和复圆不能相等就明确了。四是各方各自依照当地的经度推算日食的时刻及日食的分数。地面上东方和西方看见日月的出没,各有先后不同,那么得到的时刻也不相同。所以看到交食虽然是一个但时刻不同,这一点日食和月食都是一个道理。如果是日食则因为视差各地不同,月食则因为看的距离不同,所见到的交食分数也就有差异。
关于五星的论述有三条:一是五星应根据太阳的视运行,而不能根据段目来确定。因为五星都是以太阳为中心,与太阳合就前行得快。与太阳冲就退行。而且太阳的运行有快慢,这样五星的合伏日数,时多时少,自然不能根据段目来确定它的度分。二是五星应增加纬度运行度数。因五星出入黄道,各有一定的相距度。又木、土、火三星与太阳相冲纬度大,与太阳相合纬度小。金、水二星顺伏纬度小,逆伏纬度大。三是观测五星,应当用恒星作为标准。测量五星除使用黄道仪外,还应使用弧矢等仪器。根据测到的某星距离两颗恒星的多少度分,依据有关方法计算,纔能得到这颗星的真经纬度分。有时绘图也可以免于计算。
这时新历法书籍仪器都已完备,多次预测日月交食五星冲犯都密切相合,但魏文魁等想方设法阻挠,实际上是宦官在指使。因此皇帝不能决断,下谕叫李天经和钦天监历局虚心地详加研究,一定要求得到统一。这年,李天经推算水星隐现及木星所在的度数,都与《大统历》各不相同,而新历法与天象相合。又推算八月二十七日寅时后段二刻,木星、火星、月亮三曜同在张宿六度,而《大统历》推算木星在张宿四度,火星、月亮在张宿三度。到时,果然同在张宿六度。九年正月十五日辛酉,望日早上月食。李天经及《大统历》、《回回历》、束局,各自预先推算初亏复圆食甚的时刻和食分。李天经怕到时被云掩盖难以见到,就根据地面距离的差距,推算河南、山西所见到的时刻,上奏派官员分别测量验证。到了那一天,李天经与罗雅谷、汤若塱、大理评事王应遴、礼官李焰及钦天监、历局守登、魏文魁等到观象台观测骏证,只有李天经所推算的与天象相合。不久,河南的报告也完全与原来的推算相合,山玺因月食时被云掩盖无从验证。
皇帝认为测算月食,新历法最接近天象,只是十五日雨水,而李天经定十三日为雨水,命令他再上奏说明。
李天经答复说:讨论节气有两种办法:一是平节气,一是定节气。平节气,将一年的长度,平分为二十四份,每份得十五日多,就是一个节气。所以从前一年的冬至开始算起,宁定要遇六十日八十七刻多纔是雨水。旧历法推算的十五日子时后段二刻就是这样。定节气,以三百六十为周天的度数,也平分为二十四份,每份得十五度为一个节气。从前一年的冬至开始算起,经过五十九日二刻多,而太阳运行满六十度就是雨水。新历法所推算的十三日卯时前段二刻八分就是这样。太阳的运行有快有慢,不设法加减,一定与天象不合,怎么能平分一年长度作为节气呢?用春分来验证,道理更加明白。分,是黄道和赤道的交点,太阳运行到这里,就昼夜平分。旧历法在二月十四日之下,注明白画五十刻、夜晚五十刻就是这样。十四日昼夜已经平分,那么新历法推算十四日为春分符合天象,而旧历法推定为十六日,已落后天象二日了。知道了春分,那秋分和各节气就可知了,而对于雨水就没有疑问了。
后来李天经在春分将到时,每天中午到观象台测量正午时太阳的高度。二月十四日高五十度八分,十五日高五十度三十三分。李天经于是说:
京城的北极出地高度是三十九度五十五分,那么赤道的出地高度应是五十度五分,春分日太阳正在赤道上,太阳正午的高度与赤道的高度相等,过了这一位置太阳的高度必然逐渐增高。现在将十四日所测到的太阳高度,加上地半径差二分,比赤道高度已多五分。这大概是因为原来推算的春分在卯时后段二刻五分弱,这时每天纬行度二十四分弱,时差二十一刻五分,那么纬行度应加五分强。到十五日,加上地半径差比乔道高度已多达三十分,何况十六日呢?所以春分应当在十四日,而不应当在十六日。秋分也是这样。又上呈《节气图》,说:
内规分三百六十五又四分之一度,是太阳运行的度数。外规分三百六十度,是周天的度数。从冬至算起,经过九十一日三十一刻六分,纔到达春分,这是受太阳运行度数的限制,而在周天的度数,已超过二度多了。又经过二百七十三日九十三刻一十九分,而和秋分点相交,也是受太阳运行度数的限制,而在周天度数还差二度多。难道不是旧历法春分每次比天象落后两天,秋分比天象提前两天的原因吗?
十年正月辛丑朔日,发生日食,李天经等预测京城见食一分十秒,应天及各省分秒各不相同,只有云南、太原看不到日食。日食的初亏、食甚、复圆时刻也各不相同。《大统历》推算食分一分六十三秒,《回回历》推算食分三分七十秒,柬局推算只有游动的云气侵扰日光三十多秒。而到发生日食时检验,只有李天经的推算最精确。当时将要废除《大统历》,使用新历法,这时管理其它历局事务的代州知州郭正中进言说:“中国历法一定不要完全废弃,西洋历法一定不要独家实行。四种历法各有长短,应当综合各家,兼用西法。”十一年正月,皇帝就下诏仍然使用《大统历》,至于交食的经纬度,晦朔弦望,因历法年代长了有差错的,另外考求和参考新历法与《回回历》,几种说法并存。这一年,进升李天经焉光禄寺卿,仍然管理层法事务。十四年十二月,李天经进言说:“《大统历》设置闰月,只要求月中没有中气,新历法尤其重视合朔的先后。现在所进献的十五年新历,其中十月、十二月的中气,正好在次月合朔时刻之前,所以月内虽然没有中气,而实际上并不是闰月。大致气在朔日之前,则此气还属于上一月的晦日。到十六年第二个月只有惊螯一个节气,而中气春分,在第三个月合朔之后纔到来,那么第二个月是闰正月,第三个月是二月,是没有疑问的。”当时皇帝已深知西洋历法的精密。到十六年三月乙丑朔日日食,又惟独用西洋历法预测应验天象。八月,皇帝下诏说西洋历法确实精密,马上改名焉《大统历法》,通行天下。不久国家发生变故,最终没有施行。本朝用的是《时宪历》。
按照明朝的制度,历官都是世代相传作为职业,成化、弘治年间还能够提出修改的建议,万历以后就都是专用己说、抱残守缺而已。那些不是历官而懂历法的,除郑世子之外,唐顺之、周述学、陈壤、袁黄、雷宗都有著述。唐顺之的著述没有成书,他的论述散见于周述里的《历宗通议》、《历宗中经》。袁黄着有《历法新书》,其中天地人三元,则是来源于陈壤,而雷宗也着有《合璧连珠历法》。这些人都是融会《回回历》以纳入《授时历》,虽然不能像郑世子那样精深细致,他们对于中公历法的原理,都有所创新阐发。邢云路《古今律历考》,有人说本出自魏文魁之手。魏文魁学识本来肤浅,难怪他所注释的《授时历》,都不合原书的旨意。
西洋人来到中国的,都自称瓯罗巴人,他们的历法和《回回历》相同,而更加精密。曾经考察前代,远方国家谈历法的人多在西域,而东方、南方、北方没有听说遇。唐代的《九执历》、丞盐的《万年历》,以及湛亟年间所译的《回回历》,都是西域的历法。大概尧命令羲仲、羲叔、和仲、和叔分居四方,羲仲、羲叔、和叔就以蝎夷、南交、朔方为界限,惟独和仲祇说了“住在西方”,而没有限制地点,难道不是当时的声威教化向西影响得很远吗。到了周代末期,历官子弟四处分散。西域、天方各国,和中原西部接壤,又不像东南有大海阻隔,又没有北方严寒的威胁,他们抱着书籍仪器而西去,从情势上讲确实是很方便的。瓯罗巴在回回的西面,他们的风俗和回回相似,而喜好新奇、争强好胜的习俗超过了回回。所以他们的历法与回回同源,而代代增修,于是不是回回所能赶得上的了,这也是争强好胜的习俗造成的。羲、相失去他们的职守以后,现在还能见到的古籍,只有《周髀》。而西方人天文仪器,寒热五带的学说,地为圆球的道理,几何学的方法,都没有超出《周髀》的范围,由此也可以知道西洋历法的由来了。四处搜索广博采纳,用以继续千百年来已失落的头绪,也是礼仪失落后到僻野之地求索的意思,所以详细地论述。