志
卷十五历一
本文永久链接:https://shishuguan.com/books/xintangshu-baihuawen-full/volume-2/chapter-25
历法已经很久远了。从尧命令羲氏、和氏,观测推算日月星辰的运行,用闰月来调整四季形成一年,这些事大致在《尚书》中有记载。而夏、商、周三代用三统来改变正朔,历法本来就已不同,但他们的方法没有流传下来。到汉代制作历法,才开始以八十一分为统母,这个数字起源于黄钟的容量,大概历法的方法完全以音律为依据。后来刘歆又用《春秋》、《易象》来推演符合这些数字,这大概是牵强附会的说法。到了唐代,一行开始专门使用大衍之策,那么历术又根源于《周易》了。大概历法起源于数字,数字是自然的运用。它的运用无穷无尽且无所不通,用于音律、用于《周易》,都可以相合。但它的关键在于观测天地的气,来知道四季寒暑,并且仰望观察天上日月星辰的运行,来相互参证而已。然而四季寒暑没有形状而在下面运行,天上日月星辰有形象而在上面显现,两者常常运动而不停止。一个有形象一个没有形象,出入升降,有时慢有时快,互不相关。长久下去不能没有差错,这是形势所导致的。所以制作历法的人,开始并非不精密,但到后来大多疏漏而不符合,也是理所当然。不符合,就多次改变方法来寻求。从尧、舜、三代以来,历法从来没有相同过。
唐朝从开始到结束共二百九十多年,而历法改了八次。起初叫《戊寅元历》,叫《麟德甲子元历》,叫《开元大衍历》,叫《宝应五纪历》,叫《建中正元历》,叫《元和观象历》,叫《长庆宣明历》,叫《景福崇玄历》就停止了。
唐高祖受禅即位,准备制定新历法,东都道士傅仁均擅长推步之学,太史令庾俭、太史丞傅弈推荐他。高祖下诏令傅仁均与庾俭等人共同商议,结合受命之年命名为《戊寅元历》。于是列出其主要内容,其中可以考验的有七条,说:“唐朝在戊寅岁甲子日登基,历元是戊寅,日期开始于甲子,如同汉代《太初历》,第一。冬至五十多年就相差一度,白天最短时星昴在黄昏时出现在正南方,符合《尧典》,第二。周幽王六年十月辛卯日初一,进入日食限,符合《诗经》,第三。鲁僖公五年壬子日冬至,符合《春秋命历序》,第四。月亮有三次大月、三次小月,那么日食一定在初一,月食一定在十五,第五。定时辰从子半开始,定度从虚宿六度开始,符合阴阳的开始,第六。建立迟速定朔的方法,那么月亮运行在晦日不会出现在东方,初一不会在西方出现朓象,第七。”高祖下诏令司历从武德二年开始使用这个历法,提拔傅仁均为员外散骑侍郎。
武德三年正月十五以及二月、八月初一,应当发生日食,但接连没有应验。武德六年,高祖下诏令吏部郎中祖孝孙考察其得失。祖孝孙派算历博士王孝通用《甲辰历》的方法质问说:“‘白天最短时星昴在黄昏时出现在正南方,以确定仲冬。’七宿全部出现,只是举中宿而言。举中宿,那么其余星宿就可以知道。傅仁均专门固守昴宿在正中,拘泥于文字而损害了意思,不也是荒谬吗?另外《月令》仲冬‘黄昏时东壁星在正中’,说明昴宿在正中并不是固定标准。如果尧时星昴在黄昏时在正中,相差到东壁,那么尧之前七千多年,冬至黄昏时翼宿在正中,太阳应在东井。井宿最北,离人最近,所以暑热;斗宿最南,离人最远,所以寒冷。寒暑交换位置,一定不是这样。另外平朔、定朔,旧时有两家。三次大月、三次小月,是定朔望;一次大月、一次小月,是平朔望。日月运行有快有慢,相互赶上叫做合会。晦日、初一没有固定,根据时间消长。如果定朔的大小都在初一,那么合会虽然确定,但蔀、元、纪首三个开端都丢失了。如果向上符合履端的开始,向下得到剩余在末尾,合会有时,那么《甲辰元历》就是通术了。”傅仁均回答说:“宋朝祖冲之建立了岁差,隋朝张胄玄等人因而加以修订。虽然差数不同,但各自表明了意思。王孝通不明白,竟认为冬至时南斗是常星。太阳运行经过的星宿度数,如同传递接力一样,星宿度数既然有差,黄道也随之改变了。《尚书》说:‘季秋月初一,日月没有相会于房宿。’孔氏说:‘集,是合的意思。不合就知道日食了。’又说:‘先于时令的杀无赦,落后于时令的杀无赦。’既然有先后的差别,因此知道定朔了。《诗经》说:‘十月交接的时候,初一辛卯。’另外《春秋传》说:‘没有记载初一,是史官的失误。’从此以后历法有差,没有人能详细纠正。所以秦、汉以来,大多不是初一日食。宋朝御史中丞何承天稍微想表达意思,没有能详细研究,就被散骑侍郎皮延宗等人所压制。王孝通的话,是皮延宗的旧说。治理历法的根本,必须推求上元,日月如同合璧,五星如同连珠,夜半甲子初一早上冬至。从此七曜分散运行,不再有余分全部用尽,总合会像当初一样。只有朔分、气分,有可以尽除的道理,因为可以尽除,就出现了三端。这只是记载其日数的开始罢了。有人认为就是夜半甲子初一冬至,这是不对的。冬至自有常数,朔的名称由于月亮而起,月亮运行快慢不常,三端怎么可能立即相合。所以必须日月相合与冬至同一天,才是合朔冬至。”祖孝孙认为对,只是略去特别疏阔的地方。
武德九年,又下诏令大理卿崔善为与王孝通等人校定,崔善为所改共有几十条。起初,傅仁均以武德元年为历法开始,而气、朔、迟疾、交会以及五星都有加减。到这时又使用上元积算。他的周天度,就是古时的赤道。
贞观初年,直太史李淳风又上疏论述十八件事,又下诏令崔善为考核两家的得失,其中七条改为遵循李淳风。贞观十四年,太宗将要亲自祭祀南郊,因为十一月癸亥初一,甲子冬至。而李淳风的新方法,以甲子合朔冬至,于是上言:“古代历法分日,开始于子半。十一月应当甲子合朔冬至,所以太史令傅仁均因为减余稍多,以子初为初一,于是差了三个刻。”司历南宫子明、太史令薛颐等人说:“子初和子半,日月没有分离。李淳风的方法,比较春秋以来的晷度薄蚀,事情都符合。”国子祭酒孔颖达等人以及尚书八座参与商议,请求遵从李淳风。又用平朔推算,则两种历法都以初一冬至,对于事情更相合。而且平朔自古就行用,所以《春秋传》或许失之于前,指的是晦日。虽然癸亥日日月相及,第二天甲子,作为初一是可以的。太宗听从了。贞观十八年,李淳风又上言:“傅仁均的历法有三大大月、三个小月,说日月的食,一定在初一十五。贞观十九年九月以后,连续四个月大月。”下诏召集诸解历法的人详细讨论,不能决定。庚子日,下诏用傅仁均的平朔,直到麟德元年。
傅仁均的历法效法张胄玄,稍微用刘孝孙的旧议参入其中,它的大致疏漏比李淳风多。但相互出入,其中有所正确的地方,李淳风也不能超过它。现在所记载的,是崔善为所校定的。
《戊寅历》上元戊寅岁到武德九年丙戌,累积十六万四千三百四十八算外。
章岁六百七十六。也称为行分法。章闰二百四十九。章月八千三百六十一。
月法三十八万四千零七十五。日法一万三千零六。时法六千五百零三度法、气法九千四百六十四气时法一千一百八十三。
岁分三百四十五万六千六百七十五。岁余二千三百一十五。周分三百四十五万六千八百四十五点五。斗分一千四百八十五点五。没分七万六千八百一十五。没法一千一百零三。
历日二十七,历余一万六千零六十四。历周七十九万八千二百。历法二万八千九百六十八。余数四万九千六百三十五。
章月乘以年数,除以章岁得整数,为积月。用月法乘以积月,除以日法得整数,为朔积日;余数为小余。日数满六十,去掉;余数为大余。从甲子算起之外,得到天正平朔。加上大余二十九、小余六千九百一,得到下一次朔。加平朔大余七、小余四千九百七十六、小分四分之三,得到上弦。再加,得到望。再加,得到下弦。余数乘以年数,除以气法得整数,为气积日。像前面一样定日子,得到冬至。加上大余十五、小余二千六十八、小分八分之一,得到下一气日。加四季的节气大余十二、小余一千六百五十四、小分四,得到土王。凡是节气的小余,乘以三,除以气时法得一整数,从子半算起之外,各为其加时。设置冬至小余,乘以八,减去没分,余数除以没法得日数。加上冬至离开朔日的日数,根据月大小去掉,日数不满月算,得到没日。余分尽为减。加上日六十九、余七百八,得到下一次没。
用平朔、弦、望进入气的日数算乘以损益率,除以十五得一整数,用来损益盈缩数,得到定盈缩分。凡是不到半法的也按一算。用历法乘以朔积日,满历周去掉;余数除以历法得一整数,为日。从日算起之外,得到天正平朔夜半进入历日及余。次日加一,累加而截取。如果用一万四千四百八十四乘以平朔小余,除以六千五百零三得一整数,除不尽的为小分,用来加夜半进入历日。加满历日及余,去掉,得到平朔加时所进入,加历日七、余一万一千零八十四、小分三千九百九十五,像前面一样定名,得到上弦。再加,得到望、下弦及后朔。
历行分与次日相减,得到行差,后多为进,后少为退。减去行分六百七十六,得到差法。各设置平朔、弦、望加时进入历日余,乘以所进入日的损益率,用来损益其下积分,差法除,得到定盈缩积分。设置平朔、弦、望小余,各用进入气积分盈加、缩减,用进入历积分盈减、缩加,满或不足,进退日法,都得到定大小余,从甲子算起之外。用岁分乘以年数为积分,满周分去掉;余数除以度法得一整数,为度。从虚六开始定名,经过斗去分,得到冬至日度及分。用冬至离开朔日的日算及分减去,得到天正平朔前夜半日度及分。用小分法十四约分度分为行分。凡是小分满法成为行分,行分满法成为度。如果注历,又用二十六约行分。月和星类推。斗分一百七十七,小分七点五。累加一度,得到次日。用行分法乘以朔、望定小余,除以九百二十九得到度分,又用十四约分为行分。用来加夜半度,得到朔、望加时日度。定朔加时,日月同度。望则因此加日度百八十二、行分四百二十六、小分十太。用夜半进入历日余乘以行差,满历法得一整数,用进加、退减历行分,得到行定分。用朔定小余乘以它,满日法得一整数,为行分。用来减加时月度,得到朔、望夜半月度。求次日,加月行定分,累加。
○岁星
率三百七十七万五千零二十三。
终日三百九十八,行分五百九十六,小分七。
平见,进入冬至初日,减行分五千四百一十一。自此以后每日减少所减百二十分。立春初,每日增加所加六十分。春分,均加四日。清明到谷雨,均加五日。立夏到大暑,均加六日。立秋初日,加四千零八十分。于是每日减少所加六十七分。进入寒露,每日增加所减百一十七分。进入小雪,到大雪,均减八日。
初见,顺行,每日行百七十一分,每日减慢一分,一百一十四日行十九度二百零九分。然后留,二十六日。于是退行,每日九十七分,八十四日退十二度三十六分。又留,二十五日五百九十六分,小分七。凡是五星留日有分的,用初定见日分加。如果满行分法,去掉,又增一日。于是顺行,初日行六十分,每日加快一分,一百一十四日行十九度四百三十七分。然后伏。
○荧惑
率七百三十八万一千二百二十三。
终日七百七十九,行分六百二十六,小分三。
镇星:
率:三百五十七万八千二百四十六。
终日:三百七十八,行分六十一。
平见:进入冬至第一天,减去四千八百一十四分。每日增加所减七十九分。进入小寒,平均减去九日。每过一个节气减少所减的一日。进入夏至第一天,平均减去二日。此后每十日减少所减的一日。小暑五天之后,依平。进入大暑,每日增加所加一百八十一分。进入处暑,平均加九日。进入白露第一天,加六千零二分。每日减少所加一百三十三分。进入霜降,每日增加所减七十九分。
初见:顺行,每日行六十分,八十三日行七度二百四十八分。停留三十八日。然后退行,每日四十一分,一百日退行六度四十四分。又停留三十七日六十一分。然后顺行,每日行六十分,八十三日行七度二百四十八分而伏。
太白:
率:五百五十二万六千二百。
终日:五百八十三,行分六百二十,小分八。
晨见伏:三百二十七日,行分六百二十,小分八。
夕见伏:二百五十六日。
晨平见:进入冬至,依平。进入小寒,每日增加所加六十六分。进入立春到立夏,平均加三日。小满第一天,加一千九百六十四分。每日减少所加六十分。进入夏至,依平。进入小暑,每日增加所减六十分。进入立秋到立冬,平均减三日。小雪第一天,减一千九百六十四分。每日减少所减六十六分。
初见:退行,每日半度,十日退行五度。停留九日。然后顺行,迟行,差行,每日逐渐加快八分,四十日行三十度。进入大雪到小满的,按照此标准。进入芒种,十日减一度。进入小暑到霜降,平均减三度。进入立冬,十日减少所减一度,到小雪为止。都作为定度。用行分法乘以定度,除以四十,得到平行分。又用四乘以三十九,减去平行分,得到初日行分。平行:每日一度,十五日行十五度。进入小寒,每十日增加日度和度各一。进入雨水后,都是二十一日行二十一度。进入春分后,每十日减一。到立夏,依平。进入小满后,每六日减一。到立秋,日度和度都为零,没有平行。进入霜降后,每四日加一。到大雪,依平。疾行:一百七十日行二百零四度。前顺行迟行减度的,计算所减的数目,用来增加这个度作为定度。然后晨伏。
夕平见:进入冬至,每日增加所减百分。进入惊蛰到春分,平均减九日。清明第一天,减五千九百八十六分。每日减少所减百分。进入芒种,依平。进入夏至,每日增加所加百分。进入处暑到秋分,平均加九日。寒露第一天,加五千九百八十六分。每日减少所减百分。进入大雪,依平。
初见:顺行疾行,一百七十日行二百零四度。进入冬至到立夏的,按照此标准。进入小满,每六日加一度。进入夏至到小暑,平均加五度。进入大暑,每三日减一度。进入立秋到大雪,依平。从白露到春分,都是差行,每日逐渐加快一分半。用一分半乘以一百六十九再除以二,加上平行分,得到初日行分。进入清明到处暑,都是平行。然后平行:每日一度,十五日行十五度。进入冬至后,每十日减日度和度各一。进入惊蛰到芒种,都是九日行九度。进入夏至后,每五日增加一度。进入大暑,依平。进入立秋后,每六日加一度。到秋分,二十五日行二十五度。进入寒露,每六日减一度。进入大雪,依平。顺行迟行,每日逐渐减慢八分,四十日行三十度。前面加度的,此处按数目减之。又停留九日。然后退行,每日半度,十日退行五度。然后夕伏。
辰星:
率:一百零九万六千六百八十三。
终日:一百一十五,行分五百九十四,小分七。
晨见伏:六十三日,行分五百九十四,小分七。
夕见伏:五十二日。
晨平见:进入冬至,平均减四日。进入小寒,依平。进入立春后,平均减三日。进入雨水到立夏,应当出现而不出现。如果在惊蛰、立夏节气内,距离太阳十八度以外、三十六度以内,早晨有木、火、土、金中的一颗星,也出现。进入小满,依平。进入霜降到立冬,平均加一日。进入小雪到大雪十二日,依平。如果在大雪十三日之后,每日增加所减一日。
初见:停留六日。顺行迟行,每日行一百六十九分。进入大寒到惊蛰,没有这个迟行。然后平行:每日一度,十日行十度。进入大寒后,每两日减少日度和度各一,到二十日为止,日度和度都为零,没有这个平行。疾行:每日行一度六百零九分,十日行十九度六分。前面没有迟行的,这个疾行每日减少二百零三分,十日行十六度四分。然后晨伏。
夕平见:进入冬至后,依平。进入谷雨到芒种,平均减二日。进入夏至,依平。进入立秋到霜降,应当出现而不出现。如果在立秋、霜降节气内,傍晚有星距离太阳如前面所述,也出现。进入立冬到大雪,依平。
初见:顺行疾行,每日行一度六百零九分,十日行十九度六分。如果进入小暑到处暑,每日减少二百零三分。然后平行:每日一度,十日行十度。进入大暑后,每两日减少日度和度各一,到二十日为止,日度和度都为零,没有这个平行。迟行:每日行一百六十九分。如果疾行减少二百零三分,就不需要这个迟行。又停留六日七分。然后夕伏。
各用星率除去岁积分,余数反过来减去其率,余数用度法除得到一日,得到冬至后晨平见的日数和分。用冬至减去朔日的日数和分加上,从天正开始,按照月份大小计算,命名日数除外,得到所在日月。金、水各用晨见伏的日数和分加上,得到夕平见。各用其星初日所加减的分,计算后来日数损益的数目来损益它。完成后,就用加减平见作为定见。其加减分满行分法者为一日。用定见减去朔日的日数和分,加上其朔日前夜半的日度,又用星初见时距离日度的度数,岁星十四,太白十一,荧惑、镇星、辰星都是十七,早晨减、傍晚加,得到初见时的宿度。求次日,各加一日所行的度数和分。荧惑、太白有小分的,各用日率为分母。其行有加快或减慢的,另外放置一日行分,各用其差加快则加、减慢则减,然后加上。停留的沿用前值,退行则依减,伏则不注度。顺行出斗,去掉其分;退行入斗,先加分。完成后,都用二十六除行分,得到度分。
交会法:一千二百七十四万一千二百五十八分。交分法:六百三十七万六百二十九分。
朔差:一百零八万五千四百九十四二分。望分:六百九十一万三千三百五十。交限:五百八十二万七千八百五十五八分。望差:五十四万二千七百四十七一分。
外限:六百七十六万七百八十二九分。中限:一千二百三十五万一千二十五八分。内限:一千二百一十九万一千四百五十八七分。
将朔差乘以积月数,用交会法去除,余数得到天正月朔日的平交分。求望日,加上望分。求下一月,加上朔差。如果朔望进入大雪至冬至期间,按平值计算。进入小寒,每天加气差一千六百五十分。进入惊蛰至清明期间,平均加七万六千一百分。此后每天减少所加的一千六百五十分。进入芒种至夏至期间,按平值计算。加法满法,就去除。如果朔交进入小寒至雨水,以及立夏至小满,遇到盈二时以下,都加一半气差。二时以上则不加。如果望差以下、外限以上有星体隐伏,木星、土星隐伏后出现十日以外,火星出现四十日以外,金星晨伏出现二十二日以外,有一颗星的,不加气差。进入小暑后,每天增加所减的一千二百分。进入白露至霜降期间,平均减九万五千八百二十五分。立冬第一天,减六万三千三百分,此后每天减少所减的二千一百一十分。减数不足,加上法再减,余数为定交分。朔入交分,如果交限内限以上、交分中限以下有星体隐伏如前所述,不减。不满交分法的,为在外道;满则去掉,余数为在内道。如果望差以下,为去先交分;交限以上,用交分减去,余数为去后交分。都用三日法约简,得到时数。望日则月食,朔日在内道则日食。虽然在外道,但离交分近,也食。在内道,离交分远,也不食。
设置食望的定小余。进入历法一日,减二百八十;如果是十五日,则加二百八十;十四日,加五百五十;如果是二十八日,则减二百八十;其余日子都是盈加、缩减二百八十:得到月食定余。乘以十二,除以时法,从子半算起,余数得月食加时。约定小余如果夜漏半以下,退日上算。
设置食朔的定小余。进入历法一日,即减二百八十;如果是十五日,则加二百八十;十四日,加五百五十;如果是二十八日,则减二百八十:得到定数。之后不再进入四时加减的限。其内道,春季,去交四时以上进入历法,盈加、缩减二百八十;夏季,盈加、缩减二百八十;秋季,去交十一时以下,只盈加二百八十,以上的,盈加五百五十,缩加二百八十;冬季,去交五时以下,只盈加二百八十:都成为定余。乘以十二,除以时法,从子半算起,余数为时余,作为副。仲辰半前,用副减法得到差率;半后,后退半辰,用法加余,用副作为差率。季辰半前,用法加副为差率;半后,后退半辰,用法加余,加倍法加副,为差率。孟辰半前,三倍其法,用副减之,余数为差率;半后,后退半辰,用法加余,又用法加副,然后三倍其法,用副减之,为差率。又设置去交时数,三以下,加三;六以下,加二;九以下,加一;九以上,依数;十二以上,取十二。如果季辰半后,孟辰半前,去交六时以上的,都取六。六时以下,依数不加。都乘以差率,除以十四,得到时差。子午半后,加到时余;卯酉半后,从时余减去;加法满或不足,进退时法:孟指寅、巳、申,仲指午、卯、酉,季指辰、未、戌。得到日食加时。
看离交的分,冬季先后交,都去掉二时;春季先交,秋季后交,去掉半时;春季后交,秋季先交,去掉二时;夏季则依定数。不够去掉的,就食。然后用三万六千一百八十三作为法去除,再用十五减去,余数为月食分。
朔日离交分,在内道,五月朔日,加时在南方,先交十三时以外;六月朔日,后交十三时以外,不食。惊蛰至清明,先交十三时以外,遇到缩,加时在未西;处暑至寒露,后交十三时以外,遇到盈,加时在巳东,都不食。交在外道,先后离交一时以内的,都食。如果二时以内,以及先交遇到盈、后交遇到缩二时以外的,也食。夏季离交二时以内,加时在南方,也食。如果离分、至十二时以内,离交六时以内,也食。如果离春分三日内,后交二时;秋分三日内,先交二时内,也食。凡是离交三时内有星体隐伏,土星、木星隐伏后出现十日以外,火星出现四十日以外,金星晨伏出现二十二日以外,有一颗星的,不食。各自设置离交分。秋分后到立春,平均减二十二万八百分。惊蛰第一天到芒种,每天减少所减的一千八百一十分。夏至后到白露,每天增加所减的二千四百分。用这个减去离交分,余数为不食分。不够减,反过来相减为不食分。也用减去望差作为定法。后交遇到缩的,直接用望差作为定法。那些不食分,大寒到立春,后交五时以外,都去掉一时。时差值减的,先交减,后交加。时差值加的,先交加,后交减。不够减的,都食。乘以十五,除以定法,用十五减去,余数为日食分。
设置日月食分,四以下,加二;五以下,加三;六以上,加五;各自成为刻率,作为副。用副乘所入历的损益率,以四千零五十七为法除一次。遇到盈,反转其损益;遇到缩,依其损益。都加减其副,成为定用刻。然后乘以六,除以十,用这个减去食甚辰刻,得到亏初。再乘以四,除以十,加上食甚辰刻,得到复满。