话说这本《回回历法》,是西域默狄纳国王马哈麻写的。默狄纳在啥地方呢?大概在云南西边八千多里地,北极高度是24.5度,经度偏西107度左右。这历法啥时候开始算的呢?是从隋朝开皇己未年开始的,也就是默狄纳建国那年。朱元璋当皇帝初期,在元朝的旧都找到了这本书。洪武十五年秋天,朱元璋说,西域人推算天象最准,他们观测到的五星纬度,咱们中国以前都没记录过呢!于是,他命令翰林院的李翀、吴伯宗,还有个回回大师马沙亦黑一起把这本书翻译出来。

这回回历法,它不用闰月,一年就365天。一年分十二宫,每个宫里都有闰日,128年里,每个宫要加31天闰日。它还用354天算一个周期,也就是一个月,这个周期里也有闰日。三十年里,一共要加11天闰日。算下来,1941年后,宫、月、日、辰这些都又会重合了。这就是这回回历法的大概内容。

咱们中国历史上记载的西域历法,唐朝有本《九执历》,元朝有札马鲁丁的《万年历》。《九执历》太粗糙了,《万年历》也没流行多久。只有这本《回回历》,被明朝正式采用,编入钦天监,跟《大统历》一起用,用了270多年呢!虽然在预测日食方面,有时候会有点出入,但比《九执历》和《万年历》强多了!不过,这书有很多地方缺失或者错误。原因是,那些负责抄写和保管这本书的官员,大多用土盘和布来计算,还用着他们本国的书,所以就容易出错。后来,明朝一些学习这套历法的学者,比如唐顺之、陈壤、袁黄这些人,又自己写了一些东西,形成了自己的学派。所以,当初翻译的版本没流传下来,缺失也是很正常的事。现在,我们广泛搜集资料,仔细研究原书,把缺失的部分补上,把错误的地方改正,这才整理出了这本《回回历法》。

这回回历法从西域阿喇必年(也就是隋朝开皇己未年)算起,到洪武甲子年,一共七百八十六年。

好家伙,这看着像是古代天文历法说明书啊!咱们一句一句掰扯掰扯。

首先,它说一年有三百六十度,每度六十分,每分六十秒,更小的单位也按这个比例来算。一年有十二个宫,每个宫三十度。一天分成一千四百四十份,也就是二十四小时,每小时六十分,九十六刻,每刻十五分。 十二宫是从白羊宫开始算的,节气是从春分开始算,时间是从中午十二点开始算,不过中午十二点前一刻钟还算前一天。

接下来是七曜的编号:太阳是1,月亮是2,火星是3,水星是4,木星是5,金星是6,土星是7。 记日子不用干支纪年法,用这七曜来记。

然后是十二宫的名称:白羊宫、金牛宫、双子宫、巨蟹宫、狮子宫、处女宫、天秤宫、天蝎宫、射手宫、摩羯宫、水瓶宫、双鱼宫。

每个宫对应的日期也不一样:白羊宫在戌宫(戌是地支)待31天,金牛宫在酉宫待31天……以此类推,每个宫的日期略有不同,十二宫加起来一共是365天,这就是一年的天数。如果遇到闰年,就在双鱼宫加一天,一共366天。

月份的大小也是有规律的:单数月份是30天,双数月份是29天。一年十二个月,一共是354天。如果遇到闰月,就在十二月加一天,一共355天。

最后,它还给出了隋朝己未年(公元609年)测定的太阳和五大行星的最高运行度数:太阳在二宫二十九度二十一分;土星在八宫十四度四十八分;木星在六宫一度八分;火星在四宫十五度四分;金星在二宫十七度六分;水星在七宫六度十七分。

总而言之,这段文字详细地解释了古代的一种历法体系,包括年的划分、月份的长度、以及行星运行的位置等等,信息量相当大!

首先,我们要算闰日,宫分(也就是太阳在白羊宫的位置)的闰日计算方法是这样的:先把西元纪年减一,再乘以159(因为128年里闰31天,所以用总数乘),然后加上15(这是闰日的调整值),再用128不断地减,直到余数小于128。如果余数大于等于97,那这一年宫分就有闰日,小于97就没有。最后,在这个余数上加5(因为宫分立成起火三,所以要加5),再除以7取余数,余数就是这一年白羊宫第一天对应的星期几了。如果有闰日,就再加一天。

接下来算月分的闰日。方法是:先把西元纪年减一,再乘以131,然后加上194(这是闰日的调整值),再用30不断地减,直到余数小于30。如果余数大于等于19,那这一年正月就有闰日,小于19就没有。最后,用这个余数除以7取余数,余数就是这一年正月初一对应的星期几。

然后是计算距今的年数。先把所有天数加起来,包括宫分闰日和月分闰日,再减去331(己未春正月前的天数),然后用354(一年的天数)去除,得到的余数再减去331,再减去23(足成一年日数),再减去24(洪武甲子加次),最后再减去1(改应所损之一日),剩下的就是从己未年到现在的年数。另一种方法是:用宫分闰日和月分闰日以及通闰日加起来,减去月分闰日(月分闰日计算方法是:用11乘以距今的年数,再加14,最后除以30),再用354去除,得到的余数减去24(洪武加次),再减去23(补日),再减去1(改应损日),结果和前面一样。通闰日的计算方法是:用11乘以距今的年数。宫分闰日的计算方法前面已经说过了。

最后是求最高总度。这个比较简单,就是把西元纪年之前所有年份、月份和日期的最高度数加起来。比如,你要算十年的最高总度,就加起来前九年的最高度数。记住,立成中的度数都是当年、当月、当天的总数,如果算十年就加十年,那就算多了。月份和日期的计算方法也是一样的。

首先,咱们要算出太阳在白羊宫的最高度数。方法是:先算出最高度数,再算出太阳在白羊宫的最高度数(是29度21分)。 每年白羊宫的最高度数都要重新计算。如果要算其他宫的最高度数,就要累加上5.06秒。如果要算下一个月的,就累加上4.56秒。

接下来,算太阳的中心行度,也就是太阳每天运行的度数。把年份、月份、日期都代入公式里,算出每天的中心行度,然后减去1分4秒,就是白羊宫第一天太阳的中心行度。要算其他宫的日期,就根据每天59分8秒的运行度数累加,记住要减去1分4秒(有人说是东西方经度差异导致的,其实不是,这是因为己未年年末的度数就是这样)。

然后算太阳的自行度。方法是:用当天太阳的中心行度减去该宫的最高度数,就得到自行度(这也就是盈缩历度)。

接下来算加减差,也就是盈缩差。用自行宫度作为参考值,查太阳的加减表,找到对应的加减差(这就是未定差)。如果参考值有小数部分,就要用比例法计算:用这个参考值的加减差减去下一个参考值的加减差,结果换算成秒(1分等于60秒),再乘以参考值的小数部分(也换算成秒),得到一个很小的数值(秒乘秒得纤),再除以60,得到微、秒、分。如果数值很大,就先除以60得到微,再除以60得到秒,再除以60得到分。最后,把这个小数值与未定加减差比较,如果小于下一个参考值的加减差,就加;如果大于,就减。这样就得到了加减定差分(如果没有小数部分,直接用未定差作为定差)。

然后算黄道的经度。用当天太阳的中心行度加上或减去加减定差分(如果是在白羊宫到五宫之间,就减;如果在六宫到十一宫之间,就加),就能得到黄道的经度。

最后,算七曜。把年份、月份、日期代入公式,算出总的七曜数值,然后除以7取余数,余数就是白羊宫第一天对应的七曜。如果要算其他宫,就加上每个宫的七曜数值;如果要算每天的,就累加1,满7就归零。(计算太阴、五星的七曜也用同样的方法)。

首先,咱们要算出白羊宫一日的中心行度。把积年(就是过去多少年)代入预先算好的表里,找到对应的数值,然后加上当年的零月、日对应的数值。最后,从得到的总数里减去十四分(这十四分是个固定的数值,具体原因我就不解释了),就得到了白羊宫一日的中心行度。如果要算每天的中心行度,那就每天都这么算,然后把每天的结果累加起来就行了。公式里给出的日行度是十三度一零三五。

接下来,计算加倍相离度,也就是月亮在小轮上运行的度数,以及它和太阳之间的距离(合朔之后)。方法和上面差不多,把积年代入表里,找到对应的数值,加上当年的零月、日对应的数值,再减去二十六分。结果就是白羊宫一日的加倍相离度。如果要算每天的,就累加每天的倍离日行度,公式里给出的日行度是二十四度二二五三二二,这个数的一半就是小轮中心距离太阳的数值。

然后算本轮行度,也就是月亮自转的度数。方法和算中心行度一样,把积年代入表里,找到对应的数值,加上当年的零月、日对应的数值,再减去十四分,就得到白羊宫一日的本轮行度。如果要算每天的,就累加每天的本轮日行度,公式里给出的日行度是十三度三分五四。

接下来是比较复杂的计算,我们要算第一加减差,也叫倍离差。用加倍相离宫度作为参数,查太阴第一加减立成表,找到对应的加减差。这个加减差是个未定值,还要用它减去下差,然后把结果乘以参数的小余数,再除以六十,得到秒数,然后换算成分数。最后,把这个分数加减到未定差上(后差多加少减,和太阳的计算方法一样),就得到第一分差。

然后算本轮行定度,也就是月亮自转的确定度数。用之前算出的本轮行度,加上或减去第一分差。加减取决于倍离度,前六宫加,后六宫减。

接着算第二加减差。用本轮行定度作为参数,查太阴第二加减立成表,找到未定差,再用比例法(方法和上面一样)计算出零数,加减到未定差上,就得到第二加减差分。加减取决于参数,六宫之前减,之后加。

接下来算比敷分,用倍离宫度作为参数,查第一加减立成表,找到比敷分。如果倍离零分超过三十分,就取下度比敷分。

然后算远近度,用本轮行定宫度作为参数,查阴第二加减立成表,找到远近度分。如果参数零分,也用比例法取值。

接下来算汎差和定差。用比敷分和远近度通分相乘,再除以六十,得到汎差。把汎差加到第二加减差上,就得到定差。

最后,算太阴经度。用当天的太阴中心行度,加上或减去定差,就得到太阴经度。加减取决于本轮行定度,之前减,之后加。

首先,你需要确定计都和月亮的距离。把当天计都的运行度数从当天太阳的经度里减去,剩下的就是计都和月亮的距离。

接下来算纬度。用计都和月亮的距离(宫度)作为参考值,代入太阴纬度表查找。上半部分用顺行度数,下半部分用逆行度数。找到对应的度数后,根据比例法计算出最终的纬度。上六宫加,下六宫减。记住,参考值在六宫之前表示黄道北,六宫之后表示黄道南。

然后计算计都的运行度数。把累计的年数、月数、日数代入表中,得到计都中心运行度数。再根据每个宫的日运行度数进行计算,最终得到计都在这个宫的日运行度数。如果需要计算计都每天细微的运行变化,就用前后两段的运行度数相减,再除以相隔的天数,得到日差。然后用前一段的计都运行度数,不断减去日差,就能得到每天的运行度数。罗喉的运行度数计算方法与计都类似,只是需要在计都的度数上加上六宫。

最高总度数的计算方法和太阳一样,用之前计算太阳的方法来算。

最高运行度数的计算,把计算出的本星最高总度数加上测定的本星最高运行度数(这个数值之前已经算出来了),得到它在白羊宫的年运行度数。然后根据每个宫每天的运行度数进行计算。

日中心运行度数的计算方法和太阳一样,用之前计算太阳的方法来算。

自行度数的计算,把累计的年数、月数、日数代入表中,得到它在白羊宫的日自行度数。土星、木星、金星要减去一度,水星减去三度,火星不减。计算每个宫每天的自行度数时,要根据本星的自行度数累加。水星的自行度数如果遇到三宫初度,就以五天为一个单位计算;遇到九宫初度,就以十天为一个单位计算,纬度也是如此。

最后,计算中心运行度数和中轮心度(也就是入历度五星本轮)。土星、木星、火星,用太阳的中心运行度数减去它们的自行度数,得到中心运行度数。再减去最高运行度数,得到小轮心度。金星和水星,中心运行度数就是太阳的中心运行度数,减去它们的最高运行度数,得到小轮心度。如果减完后结果小于零,就加上十二宫再减。

最后一步,计算第一加减差(盈缩差)。用本星小轮心宫度作为参考值,代入本星第一加减表,用比例法计算。(方法和计算太阳、太阴一样)

首先,咱们得算出自行定度和小轮心定度。如果是在初宫到五宫,就把加减差加到自行度上,再从小轮心度上减去加减差,这样就分别得到了自行定度和小轮心定度。如果是在六宫到十一宫,那就把加减差从自行度上减去,再加到小轮心度上,同样也能得到自行定度和小轮心定度。

接下来算第二加减差。用这颗星的自行定度,查对应的第二加减立成表,找到度分,然后用比例法进行加减运算,方法和前面一样。

然后算比敷分。像土星、木星、金星、水星,是用这颗星的小轮心一宫度,查第一加减立成表,找到比敷分。如果引数的余数超过30分,就用手工计算经敷分。火星的话,就必须用比例法计算。

再算远近度。用自行定宫度查第二加减立成表,找到远近度,再用比例法计算。

求汎差定差的方法,和太阴的计算方法一样。

接下来算经度。先把小轮心定度拿出来,加上或减去定差(如果自行定度在六宫之前,就加;在六宫之后,就减),最后再加上这颗星的最高行度。

最后是求留段。用这颗星的留段小轮心定宫度作为引数(也就是立成表里各星的入历定限),查五星顺退留立成表,找到同宫近度,然后用这个度分分别减去前后行度。(如果是在初宫到六宫,就用本行度减后行度;如果在六宫到初宫,就用本行度减前行度。) 再用引数宫度减去立成表里同宫近度,把两次相减的结果通分相乘,再除以六度(立成表每隔六度),最后再除以60,得到的结果如果是顺行就加,逆行就减,加减到前面取到的度分上。如果得到的结果和这天自行定度相同,那就说明今天是留日。如果自行定度比这个结果大,说明留日已经过了;如果自行定度比这个结果小,说明留日还没到。想要算得更精确,就把得到的结果和这天自行定度相减,再除以这颗星一天的自行度(比如土星一天自行五下七分左右),就能算出留日是在今天的前后几天了。(土星留七天,留日前三天和后三天,留度都和留日相同;木星留五天,留日前两天和后两天,留度都和留日相同;火、金、水三星不留,一直在退行,只在运行到极点的时候才算是留。)

首先,我们要算出土、木、金、火四星每天运行的度数。方法是:把前后两段时间内星球的经度相减,再用相隔的天数去除,得到的就是每天运行的度数。水星的计算稍微复杂一点,先用白羊宫初日的经度减去前一天的经度,得到初日的运行度数。然后,再用前后两段时间内水星的经度相减,用相隔的天数去除,得到平均每天运行的度数。把初日运行度数和平均运行度数加减一下,再乘以二,然后除以前后两段时间相隔的天数,就得到每天运行度数的差值。最后,把这个差值加减到初日的运行度数上(如果初日运行度数小于平均运行度数就加,大于就减),就得到了水星每天的实际运行度数。 接下来,我们分别计算出土、木、金、火、水五颗星每天的经度,用它们每天的运行度数依次加减,就能算出每颗星每天的经度位置了。

接下来要算的是五星的伏见,也就是它们什么时候会在清晨或傍晚出现。我们要根据每颗星自己运行的度数,看看它是否在伏见立成内限度以上,如果在,那就是五星的晨夕伏见。

然后是计算五星的纬度。这需要先算出最高总行度、中心行度、自行度和小轮度,具体的计算方法要根据五星比经度术来进行。(这里没有展开具体计算方法。)

计算自行定度的方法是这样的:先把自行宫的度数和分数写下来,宫的数值乘以十得到度数(比如一宫就是十度,这个是简化计算的方法,用来计算纬度)。度数再乘以二十得到分数,满六十就进一位成度数。分数再乘以二十得到秒数,满六十就进一位成分数,把这些加起来就是自行定度了。

最后是计算小轮心定度:先把小轮心宫的度数和分数写下来,宫的数值乘以五得到度数(比如一宫就是五度)。度数再乘以十得到分数,满六十就进一位成度数。分数再乘以十得到秒数,满六十就进一位成分数,把这些加起来就是小轮心定度了。

首先,我们要算出行星的纬度。先用小轮中心确定的度数和自行确定的度数,算出行星的本星纬度,得到两个数值(一个纵向,一个横向)。然后,把这两个数值分别与后面的数值相减(如果遇到交黄道的情况,就相加)。再用小轮中心确定的度数,减去上面小轮中心确定的度数(横向),把两次相减的结果相乘,再除以上面小轮中心度数的累加数(比如土星每隔三度,火星每隔二度)。结果满六十就进一位,加减后得到一个数值,记在左边。接下来,用自行确定的度数减去上面自行确定的度数(纵向),再用刚才得到的数值,减去下面的数值(如果遇到交黄道,就相加)。把两次相减的结果相乘,再除以上面自行度数的累加数(比如土星每隔十度,火星每隔四度)。结果进一位,与左边记下的数值相加减(如果前面的数值大于下面的数值就减,小于就加;如果遇到交黄道,所得数值大于左边记下的数值,就用所得数值减去左边记下的数值,余数就是交过黄道的南北纬度)。这样就得到了黄道南北纬度。

接下来,我们算出行星纬度的细微变化。把行星前一段的纬度和后一段的纬度相减,然后除以相隔的天数,得到每天的纬度变化量。再把前一段的纬度加上或减去每天的纬度变化量,就能得到每天的纬度(如果前一段的纬度小于后一段的纬度,就加上每天的变化量;如果前一段的纬度大于后一段的纬度,就减去每天的变化量,情况不同,方法也不同)。如果前后两段的南北方向不同,就把前后两段的纬度加起来,除以相隔的天数,得到每天的纬度变化量。然后,从前一段的纬度开始,不断减去每天的变化量,直到减不动了,再用剩下的部分加上每天的变化量,就能得到每天的纬度。

最后,我们来说说推算日食的方法。日食的计算,如果合朔在上午,就用前一天的数据推算;如果合朔在下午,就用后一天的数据推算。

判断日食的条件是看合朔时月亮的纬度。如果月亮的纬度在黄道以南45分以内,或者在黄道以北90分以内,就会发生日食。如果合朔发生在白天,就能看到全食。如果合朔发生在日出前三个小时或日落后十五分(相当于一个小时四分之一)以内,就会发生带食。如果合朔发生在晚上,就不算。

首先,咱们得算出日食发生的时候。中午的时候,月亮经过太阳,(日食发生的时候,月亮会依次经过太阳。)先把秒数换算成总秒数,然后乘以24,得到一个数值。再把月亮每天运行的角度减去太阳每天运行的角度,把秒数换算成总秒数,用这个数值去除刚才得到的数值,就能算出日食发生的时间。剩下的秒数除以60变成分,剩下的分再除以60变成秒。30秒以上就记作一分,60分就记作一小时,这就是日食发生的时间。

接下来,算日食发生时太阳的经度。用日食发生的时间(换算成分)乘以太阳每天运行的角度(换算成秒),再除以24,得到一个微小的数值,把它换算成分,加减到中午太阳的经度上。(日食发生在中午之前就减,发生在中午之后就加。)这样就得到了日食发生时太阳的经度,也就是日食发生时太阳在黄道上的位置。

然后,我们要算一个加减值。看看日食发生时太阳在哪个宫位,查昼夜加减立成表,找到对应的加减值,用比例法算出来。

接下来,算出从子夜到日食发生的时间。先把日食发生的时间拿出来,加上或减去刚才算出的加减值(日食发生在中午之前就减,中午之后就加),再加减12个小时(日食发生在中午之前就减12小时,中午之后就加12小时),这就是从子夜到日食发生的时间。 (按照古代的计时方法,从子夜开始计时,这个方法是根据《大统历》改过来的,不是原来的方法。)

然后,我们开始算东西方向的偏差,也就是经差。先看看日食发生时太阳在哪个宫位,如果在立成(经纬时加减立成表)右边的第七个宫位,就取上行时(顺行);如果在左边的第七个宫位,就取下行时(逆行)。然后根据从子夜到日食发生的时间,用比例法算出第一个东西方向的偏差。 (只用时间的小数部分来计算,后面的计算方法都一样。)

接下来,算第二个东西方向的偏差。还是看日食发生时太阳在哪个宫位,在立成表里找到对应的从子夜到日食发生的时间的经差,用比例法算出来,就是第二个东西方向的偏差。

然后,算南北方向的偏差,也就是纬差。根据日食发生时太阳所在的宫位,以及从子夜到日食发生的时间,在立成表里找到对应的纬差,用比例法算出来,就是第一个南北方向的偏差。

接下来,算第二个南北方向的偏差。根据日食发生时太阳所在的宫位,以及从子夜到日食发生的时间,在立成表里找到对应的纬差,用比例法算出来,就是第二个南北方向的偏差。

最后,算时间偏差。根据日食发生时太阳所在的宫位,以及从子夜到日食发生的时间,在立成表里找到对应的时差,用比例法算出来,就是第一个时间偏差。

第二个时间偏差,也是根据日食发生时太阳所在的宫位,以及从子夜到日食发生的时间,在立成表里找到对应的时差,用比例法算出来。

首先,咱们算合朔时东西方向的偏差。把第一次观测的东、西偏差和第二次观测的东、西偏差相减,结果换算成秒,再乘以合朔时太阳的度数(也换算成秒),然后除以30得到纤,再依次换算成微、秒、分。最后,根据第一次观测的东、西偏差比第二次观测的东、西偏差是多还是少,分别加上或减去这个结果,就得到合朔时的东、西偏差了。

接下来算合朔时南北方向的偏差。方法和算东西偏差一样,把第一次观测的南、北偏差和第二次观测的南、北偏差相减,结果换算成秒,再乘以太阳的度数,除以30得到纤,再依次换算成微、秒、分。最后,根据第一次观测的南、北偏差比第二次观测的南、北偏差是多还是少,分别加上或减去这个结果,就得到合朔时的南、北偏差了。

然后算合朔时的总偏差。把第一次和第二次观测的总偏差相减,乘以太阳的度数,除以30,再依次换算,最后根据第一次观测的总偏差比第二次观测的总偏差是多还是少,分别加上或减去这个结果,就得到合朔时的总偏差。

接下来算合朔时月球运行的度数。把月球每天运行的度数(13度4分)换算成分,再乘以食甚发生的时间(也换算成分),除以24得到秒,再依次换算成分、度。最后,根据食甚发生在中午之前还是之后,分别减去或加上这个结果,就得到合朔时月球运行的度数。

然后算比敷分。把月球运行的度数代入立成(太阳、太阴时行影径分立成),根据比例法,找出同一宫内接近度数的太阴比敷分。

接下来算东西方向的最终偏差。把合朔时东西偏差换算成秒,乘以比敷分(也换算成秒),得到纤,再依次换算成微、秒、分,最后加上合朔时的东西偏差(只加不减),就得到最终的东、西偏差。

南北方向最终偏差的计算方法和东西方向一样。

接下来算食甚发生的确切时间(也就是食甚的精确时刻)。看看当天合朔时太阳的度数在立成(经纬时加减立成)的左七宫还是右七宫。如果在左七宫,用黑字减去,白字加上;如果在右七宫,用白字减去,黑字加上。把这些加减的结果都加减到从子正到合朔的时间里,得到一个初始时刻。把剩余的时间换算成秒,乘以1000,再除以1440(因为一小时是60分,一天是1440分,所以乘以1000再除以1440),最后除以60,满百为刻,就得到食甚发生的精确时刻了。

最后,算食甚时月球的经度。在合朔时太阳的经度上,加上或减去东西方向的最终偏差,就得到食甚时月球的经度了。(加减取决于食甚时刻的时差加减。)

首先,咱们得算出合朔的时候计都星的位置。 把食甚发生的时间换算成秒,再乘以计都星每天运行的度数(三分十一秒),然后除以24,得到微,满六十就进一位变成秒,再进一位变成分。最后,把这个结果加减到当天中午计都星的位置上,记住,计都是逆行的,合朔在中午之前就加,中午之后就减。

接下来算合朔时月亮的纬度。在食甚的时候,先算出计都星和月亮的距离,这个距离就是食甚时计都星的位置减去合朔时计都星的位置。然后,用这个距离查表,就能得到月亮的纬度。

然后算食甚时月亮的纬度。这个纬度需要根据南北的差异来调整。如果月亮在黄道以南,就加上合朔时月亮的纬度;如果在黄道以北,就减去合朔时月亮的纬度。这样就得到了食甚时月亮的纬度。

接下来算合朔时太阳运行的度数。用太阳每天运行的度数(五十九分八秒)换算成秒,乘以食甚发生的时间(也换算成秒),再除以24得到微,满六十就进一位,得到秒和分。然后,把这个结果加减到当天中午太阳的位置上,合朔在中午之前就减,中午之后就加。

然后算太阳的视角大小(径分)。用合朔时太阳运行的度数查表,找到对应的太阳视角大小。

再算月亮的视角大小(径分)。用合朔时月亮运行的度数查表,找到对应的月亮视角大小。

然后算太阳和月亮视角大小的平均值。把太阳和月亮的视角大小加起来,再除以二。

接下来算太阳的食限。用刚才算出的平均视角大小减去食甚时月亮的纬度,剩下的就是太阳的食限。如果结果小于零,那就说明不会发生日食;如果月亮纬度为零,那就是日全食;如果月亮纬度为零,但太阳视角大小大于月亮视角大小,那就是日环食。

然后算太阳食甚的精确度数。把太阳的食限换算成秒,乘以一千,再除以太阳视角大小(也换算成秒),最后除以一百,得到太阳食甚的精确度数。

最后算时差。把食甚时月亮纬度换算成秒,平方;把平均视角大小也换算成秒,平方;然后用月亮纬度的平方减去平均视角大小的平方,再开平方,乘以24,作为分子;分母是当天太阳运行度数(换算成分)减去月亮运行度数。分子除以分母,得到的结果就是时差,满六十分就是一小时。

首先,咱们得算初亏的时间。先记下食甚(月食过程中月亮被遮挡最严重的时候)的时间,然后减去时差,再减去子正(子时正,也就是午夜十二点)的时间,就能得到初亏的准确时间。剩下的秒数,乘以一千,除以一百四十四,再除以六十,每一百就是一刻钟,这样就得到初亏的具体时刻了。

接下来算复圆的时间。方法和算初亏差不多,也是记下食甚的时间,不过这次要加上时差,再按照初亏的方法算,就能得到复圆的时刻了。

初亏、食甚和复圆这三个时间点的方位,计算方法跟《大统历》里的一样。

月食的推算方法是这样的:如果望日(月亮最圆的时候)在上午,就用前一天的数据来推算;如果在下午,就用后一天的数据。

判断有没有月食,要看望日时月亮的经度和罗睺或计都(古代天文学中的两个虚点)的经度相差是否在十三度以内,同时太阳的纬度要在一度八分以下,这样才会有月食。如果合望(太阳、地球、月亮大致成一直线)发生在月亮未出地平线两小时内,或月亮未落入地平线两小时内,那也可能发生带食的月食,但如果超过两小时就不算。

接下来算食甚的具体时间,也就是月亮被遮挡最严重的时候。先记下那天的月亮经度,减去六宫(古代天文学中的一个单位),如果不够减就加上十二宫再减。然后用这个结果减去当天中午太阳的经度,如果太阳经度不够减,就加上六宫再减。这样算出来是上午还是下午的望日。然后把相减的结果换算成秒,再乘以二十四,得到一个数值。再把那天的月亮经度减去前一天的月亮经度(如果是在下午望日,就减去后一天的月亮经度),得到太阳一天的运行度数。用两天的太阳运行度数相减,得到的结果(换算成秒)作为除数,用前面算出的数值除以它,就能得到食甚的具体时间。剩下的余数再换算成分和秒,这就是食甚的具体时间了。

然后算食甚时月亮离开黄道(太阳运行的轨道)的度数。把食甚的时间和太阳一天的运行度数都换算成秒,相乘,再除以二十四,得到的结果乘以六十,换算成微、秒、分,然后根据是上午望还是下午望,分别减去或加上当天中午太阳的经度,得到望时的太阳经度,再加六宫,就得到结果了。

接下来算昼夜加减差,用望时的太阳宫度查昼夜加减表,找到对应的加减分,用比例法算出来。

最后算食甚的具体时间。把食甚的具体时间加上或减去昼夜加减差(上午望减,下午望加),然后加上或减去十二个小时(下午望加十二小时,上午望减十二小时),再减去子正的时间,就能得到初正时(食甚发生的时间)。剩下的余数按照日食的计算方法换算成刻,这样就得到了食甚的最终时间了。

首先,咱们得算出观望时刻的计都度数。先看看日食发生时的具体时间,然后把秒数换算成度数,用计都每日运行的度数(三分十一秒)乘以这个秒数,再除以二十四,得到一个纤,然后用六十进制换算成微、秒、分。最后,根据日食发生在中午之前还是之后,把这个结果加到或者减去中午计都的度数。(罗计逆行,午前望加,午后望减。)这就得到了观望时刻的计都度数。

接下来算观望时刻的月球纬度。先把日食发生时月亮离黄道的度数记下来,再减去刚才算出的观望时刻的计都度数。(如果不够减,就加上十二宫再减。)剩下的就是计都和月亮之间的距离,用这个距离去查太阴纬度表,就能找到对应的纬度值了。

然后算观望时刻月球本轮的运行度数,也就是入迟疾历。先把月球本轮每日运行的度数(十三四分)记下来,换算成分数,再乘以日食发生时的秒数,除以二十四得到微,再用六十进制换算成秒、分、度。根据日食发生在中午之前还是之后,把这个结果加到或者减去中午月球本轮的度数。(午前望减,午后加。)这样就得到了观望时刻的月球本轮运行度数。

接下来算月球的视直径。用观望时刻月球本轮的度数去查影径分表,就能找到对应的视直径了。(方法和日食计算一样。)

再算日食时月球投影的视直径。同样用观望时刻月球本轮的度数去查影径分表,找到对应的视直径。

然后算观望时刻太阳的自行度数。用太阳每日运行的度数(五十九分八秒)和日食发生时的秒数相乘,再除以二十四得到纤,然后用六十进制换算成微、秒、分,最后根据日食发生在中午之前还是之后,加到或者减去中午太阳的自行度数。(方法和日食计算太阳经度的方法一样。)

接下来算月球投影视直径的修正值。用当天太阳的自行度数去查影径表,找到对应度数附近的月球投影视直径差值,再用比例法算出修正值。(方法和前面一样。)

然后算出月球投影的最终视直径。把月球投影的视直径减去刚才算出的修正值。

再算出日食时太阳和月球半径之和。把月球的视直径加上修正后的月球投影视直径,再除以二。

然后算出日食的食限。把刚才算出的半径和减去观望时刻的月球纬度。

最后算出日食的食甚时刻。把食限换算成秒数,乘以一千,再除以月球视直径的秒数,最后除以一百,约为灾分,得到食甚时刻。

最后,咱们算算月球每小时运行超过太阳的度数。先算出观望时刻月球的经度减去前一天的经度,再算出观望时刻太阳的自行度数减去前一天的自行度数,然后用这两个差值相减,得到月球昼夜运行超过太阳的度数。把这个度数换算成秒数,除以二十四,再用六十进制换算,得到月球每小时运行超过太阳的度数。

首先,咱们算一下日食的时差。用月亮的纬度(换算成秒)的平方,减去地球半径(换算成秒)的平方,再开平方,得到一个数值。然后,用月亮每小时相对太阳移动的度数(换算成秒)去除这个数值,结果就是时差,也就是初亏到食甚的时间差。

接下来算初亏和复圆的时间。用食甚的时间减去时差,就是初亏的时间;用食甚的时间加上时差,就是复圆的时间。计算方法和日食一样。

然后算食既到食甚的时差。用地球半径(换算成秒)的平方减去月亮半径(换算成秒)的平方,再减去月亮纬度(换算成秒)的平方,开平方,得到一个数值。然后,用月亮每小时相对太阳移动的度数(换算成秒)去除这个数值,结果就是食既到食甚的时差。

接着算食既和生光的时间。用食甚的时间减去食既到食甚的时差,就是食既的时间;用食甚的时间加上食既到食甚的时差,就是生光的时间。

初亏、食甚和复圆发生的方向,计算方法和《大统历》一样,这里就不赘述了。

现在算一下日出日落的时间。先用中午太阳的经度查表,得到一个初步的日长(度数)。然后,根据太阳所在宫位(比如初宫三度,就对应六宫三度),再查表得到另一个日长(度数)。把这两个日长相减(如果结果小于零,就加上360度),再换算成秒,除以15,再换算成分和时,就得到一天的日长。日长的一半就是半天的时间。从12小时里减去半天的时间,就是日出时间;加上12小时,就是日落时间。

最后,算一下日出日落时带食的情况。如果日出或日落时间在初亏和食甚之间,那就有带食现象。用日出或日落时间减去食甚时间,得到一个差值。然后,用这个差值(换算成秒)乘以食甚时的月亮遮挡程度(分),再除以时差(换算成秒),就得到带食的程度(分)。用食甚时的月亮遮挡程度减去带食的程度,就是日出或日落时看到的月亮被遮挡的程度。

咱们先算月食发生的时间。先把一天分成24个小时,再减去白天的时间,再减去晨昏蒙胧的时间(大约是72分钟,也就是古代历法里的5刻多一点)。剩下的就是夜晚的时间,把这个时间换算成“更”和“点”。五分钟是一“点”,五点是一“更”。如果月食发生在子时(晚上11点到凌晨1点)之前,那就把初亏、食甚、复圆这些时间点都列出来,然后减去日落时间,再减去半个晨昏时间(36分钟)。剩下的时间,用“更”来算,不够一“更”的就用“点”来算。如果月食发生在子时之后,那就把夜晚时间的一半加上初亏、食甚、复圆这些时间,再用“更”来算,不够一“更”的就用“点”来算。最后,把算出来的“更”和“点”记下来,作为月食开始的时间。 不够一“更”或一“点的”,也记下来。

接下来算月亮一天的运行距离。把今天月亮的经度减去明天月亮的经度,剩下的就是月亮一天运行的距离。

然后算月亮的晨昏时刻。把当天中午月亮的经度加上当天傍晚时刻的修正值(就是古代历法里预先算好的值),就得到当天傍晚月亮的经度。再把第二天中午月亮的经度减去第二天清晨时刻的修正值,就得到第二天清晨月亮的经度。

再算月亮升起和落下的经度。把当天中午月亮的经度加上古代历法里预先算好的月亮升起和落下的修正值,就能分别算出月亮升起和落下时的经度。

接下来,我们要确定月亮经过哪个星座。如果是在朔(农历初一)之后,就从傍晚月亮的经度一直看到月亮落下的经度;如果是在望(农历十五)之后,就从月亮升起的经度一直看到清晨月亮的经度。然后,在星图上找到月亮经过的星座,经纬度要在一度以内才行。

然后算具体的时间。把当天中午月亮的经度减去找到的星座的经度,换算成分钟,再乘以24,然后除以月亮一天运行的距离,就能得到大致的时间。剩下的余数,再换算成分和刻,就能得到精确的时间。

最后,算月亮和星座之间的距离。把月亮的纬度减去星座的纬度,剩下的就是两者之间的距离。如果月亮和星座都在南边,月亮纬度大就是月亮在下边,月亮纬度小就是月亮在上边;如果都在北边,情况正好相反;如果一个在南一个在北,月亮在北边就是在上边,在南边就是在下边。

首先,咱们得算算金木水火土这五颗星会不会互相“撞车”,或者说,它们之间会不会靠得太近。 具体方法是:先记下这五颗星在天空中的经纬度,然后把它们的位置投影到黄道面上(就是太阳一年中在天球上运行的路径)。 如果哪两颗星在黄道面上的投影距离在一度以内,那就认为它们“相合”了。 然后,再看看它们在南北方向(纬度)上的距离,把它们的纬度差算出来,这就是它们在南北方向上的距离。

接下来,再看看月亮会不会“撞上”这五颗星,或者五颗星之间会不会互相“撞上”。 方法是:看看月亮的经纬度,以及五颗星的经纬度。如果月亮和某颗星,或者某两颗星之间的经纬度差都在一度以内,那就认为它们“相合”了。 简单来说,就是看这些星体在天空中的位置是不是挨得太近了。