〔2〕《回回历法》,西域默狄纳国王马哈麻所作。其地北极高二十四度半,经度偏西一百零七度,约在云南之西八千余昊。其历元用隋开皇己未,即其建国之年也。洪武初,得其书于元都。十五年秋,太祖谓西域推测天象最精,其五星纬度又中国所无。命翰林李翀、吴伯宗同回回大师马沙亦黑等译其书。其法不用闰月,以三百六十五日为一岁。岁十二宫,宫有闰日,凡百二十八年而宫闰三十一日。以三百五十四日为一周,周十二月有闰日。凡三十年有闰闰凡百二十八年而而宫闰三十一日,以三百五十四日为一周,周十二月,月有闰日。凡三十年月闰十一日,历千九百四十一年,宫月日辰再会。此其立法之大概也。
《回回历法》是西域默狄纳国王马哈麻所创制的。那里北极高度为二十四度半,经度偏西一百零七度,大约在云南以西八千多里。这部历法以隋朝开皇己未年(公元599年)为历元,也就是他们建国的那一年。明朝洪武初年,在元大都得到了这部书。洪武十五年秋天,太祖朱元璋认为西域人推测天象最为精确,而且他们关于五星纬度的计算是中国历法所没有的。于是命令翰林李翀、吴伯宗会同回回大师马沙亦黑等人翻译这部书。其方法不用闰月,以三百六十五天为一年。一年分为十二宫,每宫有闰日,总共一百二十八年中宫有闰日三十一天。以三百五十四天为一周,一周十二个月,每月有闰日。总共三十年有闰日,又总共一百二十八年中宫闰日三十一天,以三百五十四天为一周,一周十二个月,每月有闰日。总共三十年有闰月十一天,经过一千九百四十一年,宫、月、日、辰再次会合。这就是其立法的大概情况。
〔3〕按西域历术见于史者,在唐有《九执历》,元有札马鲁丁之《万年历》。《九执因》最疏,《万年历》行之未久。唯《回回历》设科,隶钦天监,与《大统》参用二百七十余年。虽于交食之有无深浅,时有出入,然胜于《九执》《万年》远矣。但其书多脱误。盗盖其人之隶籍台官者,类以土盘布算,仍用其本国之书。而明之习其术者,如唐顺之、陈壤、袁黄辈之所论著又自成一家言。以故 翻译之本不行于世,其残缺宜也。今为博访专门之裔,考究其原书,以补其脱落,正其讹舛,为《回回历法》,著于篇。
据史书记载,西域的历法在唐代有《九执历》,元代有札马鲁丁的《万年历》。《九执历》最为粗略,《万年历》施行不久。只有《回回历》设立了专门科目,隶属于钦天监,与《大统历》参合使用了二百七十多年。虽然对于日食月食的有无和深浅,时有出入,但远胜于《九执历》和《万年历》。但是这部书有很多脱漏和错误。大概是因为那些在朝廷担任天文官的人,大多用土盘(沙盘)进行演算,仍然使用他们本国的文字。而明代学习其方法的人,如唐顺之、陈壤、袁黄等人所著的论述又自成一家之言。所以翻译的版本未能流行于世,其残缺也是理所当然的。现在广泛访求专门家的后代,考究其原书,以补充其脱落,纠正其错误,编成《回回历法》,著录于篇。
〔4〕积年 起西域阿喇必年,(隋开皇己未。)下至洪武甲子,七百八十六年。
积年:从西域阿喇必年(即隋朝开皇己未年)开始,向下到洪武甲子年,共七百八十六年。
〔5〕用数 天周度三百六十。(每度六十分,每分六十秒,微纤以下俱准此。)宫十二。(每宫三十度。)日周分一千四百四十,时二十四,(每时六十分。)刻九十六。(每刻十五分。)宫度起白羊,节气首春分,命时起午正。(午初四刻属前日。)
所用数据:天周(圆周)为三百六十度(每度六十分,每分六十秒,微、纤以下都以此类推)。黄道十二宫(每宫三十度)。一日周分为一千四百四十分,共二十四小时(每小时六十分)。刻为九十六刻(每刻十五分)。星宫度数从白羊宫开始,节气从春分开始,计时从午正(中午十二点)开始(午初四刻属于前一日)。
〔6〕七曜数 日一,月二,火三,水四,木五,金六,土七。(以七曜纪不用甲子。)
七曜的数目:太阳为一,月亮为二,火星为三,水星为四,木星为五,金星为六,土星为七(用七曜来纪日,不用干支)。
〔7〕宫数 白羊初,金牛一,阴阳二,世蟹三,狮子四,双女五,天秤六,天蝎七,人马八,磨羯九,实宝瓶十,变鱼十一。
宫数:白羊宫为初,金牛宫为一,双子宫为二,巨蟹宫为三,狮子宫为四,室女宫为五,天秤宫为六,天蝎宫为七,人马宫为八,摩羯宫为九,宝瓶宫为十,双鱼宫为十一。
〔8〕宫日 白羊戌宫三十一日。金牛酉宫三十一日。阴阳申宫三十一日。巨蟹未宫三十二日。狮子午宫三十一日。双女巳宫三十一日。天秤辰宫三十一日。天蝎卯宫三十日。人马寅宫二十九日。磨羯丑宫二十九日。宝瓶子宫三十日。变鱼亥宫三十日。(已上十二宫,所谓不动之月,凡三百六十五日,乃岁周之日也。若遇宫分有闰之年,于变鱼宫加一日,凡三百六十六日。)
各宫的天数(即不动之月):白羊宫(戌宫)三十一天,金牛宫(酉宫)三十一天,双子宫(申宫)三十一天,巨蟹宫(未宫)三十二天,狮子宫(午宫)三十一天,室女宫(巳宫)三十一天,天秤宫(辰宫)三十一天,天蝎宫(卯宫)三十天,人马宫(寅宫)二十九天,摩羯宫(丑宫)二十九天,宝瓶宫(子宫)三十天,双鱼宫(亥宫)三十天。以上十二宫,就是所谓的“不动之月”,总共三百六十五天,即一年的天数。如果遇到宫分有闰的年份,就在双鱼宫增加一天,共三百六十六天。
〔9〕月分大小 单月大,变月小。(凡十二月,所谓动之月也。月大三十日,月小二十九日,凡三百五十四日,乃十二月之日也。遇月分有闰之处,于第十二月内增一日,凡三百五十五日。)
月分的大小:单月为大月,双月(变月)为小月(共十二个月,这就是所谓的“动之月”)。大月三十天,小月二十九天,总共三百五十四天,即十二个月的总天数。遇到月分有闰的年份,就在第十二月内增加一天,共三百五十五天。
〔10〕太阳五星最高行度(隋己未测定。)太阳二宫二十九度二十一分。 土星八宫十四度四十八分。木星六宫初度八分。火星四宫十五度四分。金星二宫十七度六分。水星七宫六度十七分。
太阳和五大行星的最高行度(隋朝己未年测定):太阳在二宫(金牛宫)二十九度二十一分;土星在八宫(天蝎宫)十四度四十八分;木星在六宫(室女宫)初度八分;火星在四宫(巨蟹宫)十五度四分;金星在二宫(金牛宫)十七度六分;水星在七宫(天秤宫)六度十七分。
〔11〕求宫分闰日(无之余日。)置西域岁前积年,减一,以一百五十九乘之,(一百二十八年内,闰三十一日故以总数乘。)内加一十五,(闰应。)以一百二十八屡减之,余不满之数,若在九十七已上,(闰限。)其年宫分有闰日,已下无闰日。于除得之数内加五,(宫分立成起火三,故须加五。)满七去之,余即所求年白羊宫一日七曜。(有闰加一日,后同。)
求宫分闰日(即无余日):设置西域岁前的积年数,减一,乘以一百五十九(因为一百二十八年内有三十一个闰日,所以用总数乘),再加上十五(闰应),然后反复减去一百二十八,直到余数小于一百二十八。如果余数在九十七以上(闰限),则该年宫分有闰日;以下则无闰日。在除得的数上加五(因为宫分立成从火三开始,所以加五),然后满七去掉(即除以七取余数),余数就是所求年白羊宫第一天的七曜值(有闰日则加一天,后面相同)。
〔12〕求月分闰日(朔之余日。) 置西域岁前积年,减一,以一百三十一年乘之,(总数乘。)内加一百九十四,(闰应。)以三十为法屡减之,余在十九已上,(闰限。)其年月分有闰日,已下则无。于除得之数,满七去之,余即所求年第一月一日七曜。
求月分闰日(即朔之余日):设置西域岁前积年,减一,乘以一百三十一(总数乘),加一百九十四(闰应),然后反复减去三十,余数在十九以上(闰限),则该年月分有闰日;以下则无。在除得的数中,满七去掉,余数就是所求年第一个月第一天的七曜值。
〔13〕加次法 置积日,(全积并宫闰所得数。)减月闰内加三百三十一日,(己未春正前日。)以三百五十四(一年数)除之,余数内减去所加三百三十一,又减二十三,(足成一年日数。)又减二十四,(洪武甲子加次。)又减一,(改应所损之一日。)为实距年(己未至今)得数。又法:以气积(宫闰并通闰为气积)内减月闰,(置十一,以距年乘之,外加十四,以三十除之,得月闰数。)以三百五十四除之,余减洪武加次二十四,又减补日二十三,又减改应损日一,得数如前。(求通闰,置十一日,以距年乘之。求宫闰前见。)
加次法:设置积日(全积加上宫闰所得数),减去月闰,再加三百三十一日(即己未年春正前一日),除以三百五十四(一年日数),余数减去所加的三十一,再减二十三(补足一年日数),再减二十四(洪武甲子加次),再减一(改应所损一日),得到距离年(从己未到今年)的数值。另一种方法:用气积(宫闰与通闰之和)减去月闰(设置十一,以距年乘之,再加十四,除以三十,得到月闰数),除以三百五十四,余数减去洪武加次二十四,再减补日二十三,再减改应损日一,得到数值同上(求通闰:设置十一日,乘以距年。求宫闰见前文)。
〔14〕求最高总度 置西域岁前积年,入总年零年月分日期立成内,各取前年前月前日最高行度并之。(如求十年,则取九年之类。盖立成中行度,俱本年本月日足数也。如十年竟求十年,则逾数矣。月日义同。后仿此。)
求最高总度:设置西域岁前积年,进入总年、零年、月、分、日期的立成(表格)中,分别取前一年、前一个月、前一天的“最高行度”并加在一起(例如求第十年,就取第九年的数据。因为立成中的行度都是本年月日的完整数值,如果直接求第十年,就会超过实际数值。月和日同理,后面仿此)。
〔15〕求最高行度 置求到最高总度,加测定太阳最高行度,(二宫二十九度二十一分。)即年求年白羊宫最高行度。如求次宫,累加五秒零六微。求次月,加四秒五十六微。
求最高行度:将求得的最高总度,加上测定的太阳最高行度(二宫二十九度二十一分),就是所求年白羊宫的最高行度。如果求下一个宫,则累加五秒零六微;求下一个月,则加四秒五十六微。
〔16〕求中心行度(日平行度。)置积年入总年零年月日立成内,各取日中心行度并之,(取法同前。)内减一分四秒,即所求白羊宫第一日中心行度。求各宫月日,按每日行度(五十九分八秒)累加之。(内减一分四秒,或云西域中国里差,非是,盖系己未年之末日度应也。)
求中心行度(即太阳平均运动速度):将积年数代入总年、零年、月、日的立成中,分别取各年的太阳中心行度并加在一起(取法同前),再减去一分四秒,即得到所求白羊宫第一天的中心行度。求各宫、各月、各日,按每日行度(五十九分八秒)累加(减去一分四秒,有人说是西域与中国的地理经度差,其实不是,而是己未年最后一天的度应)。
〔17〕求自行度 置其日中心行度,减其宫最高行度,即得。(即入盈缩历度也。)
求自行度:用当天的中心行度减去该宫的最高行度,就得到自行度(即进入盈缩历的度数)。
〔18〕求加减差。(即盈缩差。)以自行宫度为引数,入太阳加减立成内,照引数宫度取加减差。(是名未定差。)其度下小余,用比例法,以本度加减差,与后度加减差相减,余数通为秒,(如一分通为六十秒。)与引数小余(亦通秒)相乘,得数为纤,(秒乘秒,得纤。)以六十收之,为微、为秒、为分。(如数多,先以六十收之为微,又以六十收之为秒,又以六十收之为分。)视前所得未定加减差数较,少于后数者(后度加减差)加之,多于后数者减之,是为加减定差分。(如无小余,竟用未定差为定差。后准此。)
求加减差(即盈缩差):以自行度的宫和度为引数,进入太阳加减立成表,根据引数的宫度取出加减差(称为未定差)。对于度数的小数部分,用比例法:将本度的加减差与后一度数的加减差相减,余数换算成秒(如一分换算成六十秒),再与引数的小数部分(也换算成秒)相乘,得到纤(秒乘秒得纤),再以六十进制换算成微、秒、分。然后看前面得到的未定差,如果比后度差小,则加上这个差值;如果比后度差大,则减去这个差值,得到加减定差(如果没有小数部分,就直接用未定差作为定差,后面同此)。