十五、梁朝俗间尺
比梁法尺长六分三厘,比刘曜浑仪尺长二分,折合晋前尺一尺七分一厘。梁武帝《钟律纬》记载:“宋武帝平定中原,送来浑天仪与土圭,说是张衡制作。查验浑天仪铭文,是光初四年铸造,土圭是光初八年制作。都是刘曜所造,不是张衡。拿它定为尺子,比当时新尺长四分三厘,比民间俗尺短二分。”文中所说新尺,就是梁法尺。
嘉量
《周礼》记载,蠙氏负责制造量器:鬴深一尺,内部是边长一尺的正方形,外部做成圆形,容积是一鬴;器底的底座高一寸,容积是一豆;器两侧的耳,高三寸,容积是一升。整器重一钧。敲击它发出的声音,和黄钟律相合。用概板刮平量器上口,计量公允。器上铭文写道:文王深思,务求达到法度的极致。标准嘉量制成,用来昭示四方邦国。永远传给后世,这件器物就是准则。
《春秋左传》记载:齐国旧有四种量器:豆、区、鬴、钟。四升为一豆,各自以四进位,直到鬴。一鬴是六斗四升。十鬴就是一钟,一钟六十四斗。郑玄认为,一尺见方的容器容积一千立方寸,比《九章算术》粟米算法的标准少二升八十一分之二十二。祖冲之用算术推算,它的容积一共一千五百六十二点五立方寸。内部方一尺、外作圆形,四边向外留出一厘八毫的庣旁,外径一尺四寸一分四毫七秒二忽有余,深度一尺,就是古斛的形制。
《九章算术·商功篇》记载标准:一斛粟,容积二千七百立方寸;一斛米,容积一千六百二十立方寸;豆类、麻、麦,一斛容积二千四百三十立方寸。这是依据粮食精粗制定比率,让物价均衡而容量不等。量器的容积,以米斛为标准,和《汉书·律历志》一致。
《孙子算术》记载:六粒粟为一圭,十圭为一秒,十秒为一撮,十撮为一勺,十勺为一合。应劭说:“圭,是自然的形态,阴阳的开端。四圭为一撮。”孟康说:“六十四粒黍为一圭。”
《汉书·律历志》说:量器,分为籥、合、升、斗、斛,用来计量多少。源头出自黄钟之籥。用尺度核定它的容积,取中等大小的黑黍一千二百粒装满籥,用水准和概板调平。十籥为一合,十合为一升,十升为一斗,十斗为一斛,五种量器就完备了。制作方法是用铜铸造,内部方一尺、外部圆形,四边留有庣旁。上部是斛,下部是斗,左耳是升,右耳是合、籥。外形像酒爵,象征爵禄。上三、下二,对应参天两地。圆器内含方底,左一右二,是阴阳的象征。圆形对应圆规,总重二钧,对应万物之数,一万一千五百二十。发声和黄钟相合,法度从黄钟起始,循环往复。
王莽斛的铭文写道:律嘉量斛,方尺而圆其外,庣旁九厘五毫,底面积一百六十二平方寸,深一尺,容积一千六百二十立方寸,容十斗。祖冲之用圆周率推算,这个斛的外径应当是一尺四寸三分六厘一毫九秒二忽,庣旁一分九毫有余。刘歆记载的庣旁少了一厘四毫有余,是刘歆算术不够精密造成的。
曹魏陈留王景元四年,刘徽注解《九章算术·商功》:“当今大司农斛,圆径一尺三寸五分五厘,深一尺,容积一千四百四十一又十分之三立方寸。王莽铜斛,用当今魏尺量,深九寸五分五厘,直径一尺三寸六分八厘七毫。用我的算法计算,这个王莽斛,用魏斛来量,容九斗七升四合有余。”这就是魏斛容量大、所用尺子长,王莽斛容量小、所用尺子短。
梁、陈沿用古制。北齐以古制五升为一斗。
后周武帝保定元年辛巳五月,晋国修建粮仓,出土古玉斗。到保定五年乙酉冬十月,下诏重新铸造铜律度量,以求中和。排列黑黍装入籥,容量和玉斗相同,和衡、尺的标准没有偏差。依照玉斗铸造铜升,颁行天下。铜升内径七寸一分,深二寸八分,重七斤八两。天和二年丁亥,正月癸酉初一,十五日戊子校定完成,移交地官府作为标准。这是铜升铭文。
玉升铭文写道:大周保定元年,岁在重光,月份为蕤宾,晋国官吏修缮粮仓,得到古玉升,形制端正,如同上古嘉量。太师晋国公上报朝廷,皇帝下令收入天府。到保定五年,岁在协洽,皇帝下诏考校准绳、律管,不差丝毫黍粒。于是熔铸铜器仿制,颁行天下,使权衡度量合乎太平法度。
现在用数字推算,玉升容积是玉尺一百一十立方寸八分有余,一斛容积一千一百零五立方寸七分三厘九秒。甄鸾《算术》记载:玉升一升,相当于后周官斗一升三合四勺。这是玉升容量大,官斗容量小。推算甄鸾所说的后周官斗,容积是玉尺九十七立方寸有余,一斛九百七十七立方寸有余。后周玉斗、配套错金铜斗、建德六年错金题字铜斗,都是以黑黍来定容量。用玉衡称重,一升所装黍粒,都重六斤十三两。
开皇年间,以古斗三升为一升。大业初年,恢复古斗标准。
衡权
衡,就是平;权,就是重。衡杆依托权锤,来均衡物体、称量轻重。它的道理如同砥石,用来校正水准、墨绳。向左旋转画出圆规,向右弯折画出矩尺。在天象当中,它协助璇玑,调节北斗指向,规整七政,所以玉衡是北斗的部件。权的单位,是铢、两、斤、钧、石,用来称量物品,公平分配,知晓轻重。上古还有黍、絫、锤、锱、镮、钩、锊、镒这些名称,历代变迁,详情已经无从考证。
《汉书·律历志》说:权的源头出自黄钟的重量。一籥容一千二百粒黍,重十二铢。两枚十二铢为一两,二十四铢为一两。十六两为一斤。三十斤为一钧。四钧为一石。五种重量单位就完备了。形制依义理设立,以实物互相校准。其余大小差别,以轻重适宜为准。权锤做成环形,环的外壁厚度是内孔宽度的两倍,转动没有端点,循环往复,永无止境。权锤和重物平衡,衡杆就水平;衡杆转动生出圆规;圆规生出矩尺;矩尺生出墨绳;墨绳端直,就生出水准。水准端正,衡杆平稳,权锤就校准。这五项法则,都包含在权衡器具之中,作为根本规范。
据《赵书》记载,石勒十八年七月,修建建德殿,挖出一块圆石,形状像水碓。铭文写道:律权石,重四钧,统一律度量衡,有辛氏所造。续咸考证,这是王莽时期的器物。北魏景明年间,并州人王显达献上古铜权一枚,上面有八十一字铭文:律权石,重四钧。又写道:黄帝是初祖,德行传到虞舜;虞舜是始祖,德行传到新朝。岁星在大梁,龙集戊辰。戊辰为定日,天命归于新朝。依土德受命,正式称帝。改历以丑月为正月,国运长久昌盛。统一律度量衡,遵从前代法度。己巳之年,岁在实沈,初次颁布天下,万国永久遵行。子子孙孙,传承亿万年。这也是王莽所造。当时太乐令公孙崇依照《汉志》先造秤尺,见到这件铜权,用新造的秤称量,正好重一百二十斤。新秤和铜权,严丝合缝,于是交给公孙崇用来调乐。孝文帝时期,完全依照《汉志》制作斗、尺。
梁、陈沿用古秤。北齐以古秤一斤八两作为一斤。北周玉秤四两,相当于古秤四两半。开皇年间,以古秤三斤为一斤。大业年间,恢复古秤。
志第十二 律历中
历法,是记录阴阳消长变化,推究过往天象,预知未来时序,可以迎候太阳、颁布农时,在天象变化之前安排事务的学问。天上明亮的物象,没有比日月更大的;节气循环往复,没有比四时更守信用的。日月交替运行,光明由此产生;寒暑轮番更迭,年岁由此形成。于是构成天地的文采,穷尽乾坤的变化。
天数五,地数五,五位相互配合,各有相合。天数总和二十五,地数总和三十,天地之数合计五十五,以此生成万物变化,通达幽微的神妙。乾卦策数二百一十六,坤卦策数一百四十四,合计三百六十,对应一年的天数。阴阳交替作用,刚柔互相摩擦,四象排布,八卦列位,这就是文字的开端、历法的源头。
到炎帝划分八个节气,轩辕设立五部官,少昊以凤鸟掌管历法,颛顼以南正掌管天事,唐尧分别命令和仲测候,夏禹在《洪范》中详述时序;商汤、周武王改朝换代,都沿用旧有的法度。但是文风、实质各不相同,正月岁首随之更改。所以天子设置日官,诸侯设置日御,协和万国,协调日月星辰。寒暑、明暗的征兆,阴阳生杀的定数,启闭升降的纲纪,消息盈虚的节度,全都和星辰运行轨道相合而不偏离,覆盖万物,匹配天地,开启万事,探究深远。
周朝王室衰微之后,史官荒废职守,畴人四散,灾祥无法研判。秦国统一天下,推崇五德终始,自认得到水德祥瑞,以十月为岁首。汉朝初年,百事草创,无暇改历,一百多年里,依旧使用秦代历法。到汉武帝,改用夏历正月为岁首。当时流传六家古历,学者怀疑其中错谬。刘向、刘歆父子都加以研讨,班固据此采录,写成《汉书·律历志》。光武帝中兴,没能仔细考校。到永平末年,才重新施行四分历,七十多年之后,法式才算完备。之后朝廷又命刘洪、蔡邕共同修订律历,司马彪用他们的成果续写《后汉书》。曹魏建国,也设有史官,韩翊率先创制,杨伟接续修订,全都遵从刘洪的方法,没能达到刘洪的精深。西晋、东晋,多次增减修订。西凉也制定蔀法,事迹繁杂,不能一一详述。
南朝宋元嘉年间,何承天造元嘉历,一直用到齐朝末年。梁武帝初年,沿用齐朝旧历;天监中期,才改用祖冲之的《甲子元历》。陈武帝受禅,也没有新的创制。北齐文宣帝,使用宋景业的《天保历》。西魏入关中,沿用李业兴《正光历》。到北周武帝,甄鸾造出《甲寅元历》,参杂使用推算。大象初年,太史上士马显,又献上《丙寅元历》,随即施行。一直到开皇四年,改用张宾历;开皇十七年,又施行张胄玄历,用到义宁年间。现在收录梁朝天监以来五代历法增减变革的要点,写在本篇之中。
梁朝初年沿袭齐制,使用刘宋《元嘉历》。天监三年,下诏修订历法,员外散骑侍郎祖暅上奏说:“臣的先祖自晋代以来,世代掌管历法。追溯从黄帝至今十二代,历元各不相同,周天、斗分的疏密也有差别,每个时代各用一套历法,流传后世。刘宋大明年间,先臣考证古法,制定正历,传给后人,推算之事全都应验,不可改动。”天监八年,祖暅又上疏论述此事。梁武帝下诏,让太史令将匠道秀等人,观测新旧二历的节气、朔日、日月交会以及七曜运行,从天监八年十一月,到天监九年七月,观测结果显示新历精密,旧历粗疏。祖暅于是上奏:“史官现在所用何承天历,渐渐和天象背离,条目错乱,不能继续沿用。臣奉诏在灵台,和新历比对疏密,先期一百天,又再次核验。从去年冬天,到本月朔日,得失的情况,已经按月上奏。日月五星运行,数理精深奥妙,一旦源头出错,经年累月偏差越来越大。臣所上的新历如果可以施行,应当在明年正月颁行。”到天监九年正月,颁行祖冲之的《甲子元历》。大同十年,梁武帝下诏再造新历,以甲子为历元,章岁六百一十九,日法一千五百三十六,一百八十三年冬至偏移一度,月朔依照月亮运行快慢确定小余,会出现连续三个大月、两个小月。还没有来得及施行,就遭遇侯景之乱,于是搁置。
陈朝沿袭梁朝,也使用祖冲之历,没有新的创制改革。北齐文宣帝受禅,命令散骑侍郎宋景业依据图谶,造《天保历》。宋景业上奏:依据《握诚图》《元命包》,说齐朝承接天命,接续魏朝终结的时序,取三十五为蔀,取六百七十六为章。文宣帝十分高兴,下令施行。这部历的统序记载:上元甲子到天保元年庚午,积十一万零五百零六年,章岁六百七十六,度法二万三千六百六十,斗分五千七百八十七,历余十六万二千二百六十一。
到北齐后主武平七年,董峻、郑元伟上书反对:“宋景业把闰月挪到天正,在冬至交会的时候退后定朔,接连两个大月之后,三月之交,随意削减平分。臣核查,宋景业学问不能探知奥秘,见识不够精深,有心改历,大多沿袭旧条文,只是改换数字,看似变革,实则牵强附会,不合天道真理。导致太阳位置偏差八度,节气晚于天象,闰月提前一个月。朔望日食月食,不能掌握表里变化;日月迟疾的推步,也不能贯通。凭空设立平分,随意退后冬至;冬至退后,一年日数就少于实岁;平分虚设,所以加时的时刻错在别的日子。五星的出现、隐伏,偏差可达二十天;快慢、顺行、留止,甚至错两宿。轨漏的术法,胡乱预言水旱。现在献上《甲寅元历》,以六百五十七为章,二万二千三百三十八为蔀,五千四百六十一为斗分,甲寅岁甲子日为历元。”
另外广平人刘孝孙、张孟宾二人,一同通晓历法。张孟宾师从张子信,抛弃旧法,另造新术。还有赵道严,依据日影长短,确定太阳运行进退,重新设立盈缩算法,推求食期。刘孝孙以一百一十九为章,八千零四十七为纪,九百六十六为岁余,甲子为上元,起度从虚宿正中。张孟宾以六百一十九为章,四万八千九百为纪,九百四十八为日法,一万四千九百四十五为斗分。二人历元相同,法理简而意深。日月五星,都从斗宿十度起算。盈缩转度、阴阳分至,和漏刻相合,和日影吻合,循环无穷。向上核验《春秋》,向下到北齐天统年间,日月食、五星位置,用二人新法推算,全都吻合。
同年,讫干敬礼和历家预先推算日食疏密。六月戊申朔,发生日食,刘孝孙预测在卯时,张孟宾预测在甲时,郑元伟、董峻预测在辰时,宋景业预测在巳时。日食发生之时,介于卯、甲之间,所有人都没能准确命中。争论没有定论,北齐就亡国了。
西魏入关中,仍然沿用李业兴《正光历》。北周明帝武成元年,才下诏官署造北周历。于是露门学士明克让、麟趾学士庾季才以及诸位占候历算之人,采纳祖暅旧论,融会南北历法。自此之后,常常发现旧历的错谬。所以北周、北齐同在一个时代,历法推算的日期却相差一天。明克让是儒生,不担任日官,把书稿交给太史。到武帝时期,甄鸾造《天和历》。上元甲寅到天和元年丙戌,积八十七万五千七百九十二年,章岁三百九十一,蔀法二万三千四百六十,日法二十九万零一百六十,朔余十五万三千九百九十一,斗分五千七百三十一,会余九万三千五百一十六,历余十六万零八百三十,冬至太阳在斗宿十五度,参杂使用推算,用到宣政元年。
大象元年,太史上士马显等人,又献上《丙寅元历》,上表奏道:
臣研读《九章》《五纪》的宗旨,三统、四分的学说,都是用来调节节气、考校晷影星象,颁布政令、授民农时,作为帝王的根本准则。但是天道难以测度,星算容易产生偏差,盈缩的周期一旦出错,灾异征兆就会相应显现。不止蛇乘龙、水害火,也会出现玉羊掩蔽日光、金鸡失去光华。王朝教化和历法盛衰相关,国家兴亡与之相连,历法的意义,在此至关重要。
自从汉代以来,直到北魏,历经四代,跨越千年,掌天的官吏代代不绝,定元颁朔,各有沿袭改动。核验近事,日月合璧可以应验;推求久远,连珠天象就会失序,旧法已经难以沿用,正是这个缘故。大周承受天命,囊括万古,斟酌夏商,取法前代,历法弃壬子,改用甲寅为元。高祖武皇帝探幽索隐,穷尽数理,认为这部历法虽然施行,还没有达到精妙,于是下诏广泛寻访贤才,敕令太史上士马显等人,重新刊定,务求妥当。但是术数之士,各持异见,一共献上八家历法,精粗混杂,不能尽善。去年冬天,孝宣皇帝下诏,命臣等考校疏密,一同修订。臣查阅太史旧簿、各家术数,弃短取长,共同定下现在的算法。历法从丙寅起元,对于日月食、五星伏见,长时间比对,最为精密。希望炭灰测候,寒暑不差;葭管飞灰,阴阳节度无误。
上元丙寅到大象元年己亥,积四万一千五百五十四年。日法五万三千五百六十三,又叫蔀会法。章岁四百四十八,斗分三千一百六十七,蔀法一万二千九百九十二。章中就是章会法。日法五万三千五百六十三,历余二万九千六百九十三,会日一百七十三,会余一万六千六百一十九,冬至太阳在斗宿十二度。小周余、盈缩积,另有术法推算入蔀会,分用阳率四百九十九,阴率九。每十二个月之下,各有日月食转分,推算加减,得到食的大小余,再求准确加时。
这套历法得以施行。当时杨坚以大丞相辅政,准备禅代北周,想要用符命昭示天下。道士张宾,揣摩杨坚心意,自称通晓玄象星历,大讲改朝换代的征兆,又说杨坚相貌不是人臣之相。由此深受信任,常在幕府。杨坚受禅登基之初,提拔张宾为华州刺史,让他和仪同刘晖、骠骑将军董琳、索卢县公祐、前太史上士马显、太学博士郑元伟、前保章上士任悦、开府掾张撤、前荡边将军张膺之、校书郎衡洪建、太史监候粟相、太史司历郭翟、刘宜、兼算学博士张乾叙、门下参人王君瑞、荀隆伯等人,商议造新历,由太常卿卢贲监督。张宾等人依据何承天的历法,稍加增减,开皇四年二月完成上奏。隋文帝下诏说:“张宾等人潜心算术,通晓古今,每次上奏,多有启发。大功告成上表,朕已经阅览。使得新月复生,不出上月晦夜;月末余分,不留到下月初朔。消减朓、朒之差,和旧历标准差别很大。月亮运行有表里不同轨道,日交而不食,是因为行走阳道。校验天象推算,误差极其微小,前代先贤,都没有揭开这个奥秘。有这样一处优点,已经十分精密,应当颁行天下,依照此法施行。”
张宾所造历法的要点: 从上元甲子以来,到开皇四年甲辰,积四百一十二万九千零一年。 蔀法,十万二千九百六十。 章岁,四百二十九。 章月,五千三百零六。 通月,五百三十七万二千二百零九。 日法,一十八万一千九百二十。 斗分,二万五千零六十三。 会月,一千二百九十七。 会率,二百二十一。 会数,一百一十半。 会分,一十一亿八千七百二十五万八千一百八十九。 会日法,四千二十万四千三百二十。 会日,一百七十三。 余,五万六千一百四十三。 小分,一百一十。 交法,五亿一千二百一十万四千八百。 交分法,二千八百一十五。 阴阳历,一十三。 余,十一万零二百六十三。 小分,二千三百二十八。 朔差,二。 余,五万七千九百二十一。 小分,九百七十四。 蚀限,一十二。 余,八万一千三百零三。 小分,四百三十三半。 定差,四万四千五百四十八。 周日,二十七。 余,一十万零八百五十九,又叫少大法。
木星叫岁星,合率四千一百零六万三千八百八十九。 火星叫荧惑,合率八千零二十九万七千九百二十六。 土星叫镇星,合率三千八百九十二万五千四百一十三。 金星叫太白,合率六千零一十一万九千六百五十五。 水星叫辰星,合率一千一百九十三万一千一百二十五。
张宾历法施行之后,刘孝孙和冀州秀才刘焯,一同指出它的过失,说这套历法没有师承法度,推算日食不准,一共列举六条驳斥意见: 第一,何承天不知道置闰的弊病,沿用十九年七闰; 第二,张宾等人不懂宿度会变化,冬至固守固定度数; 第三,日月五星合璧连珠,应当同源起算,他们却给五星单独设立历元; 第四,张宾等人只知道日气余分刚好穷尽就定为历元,不知道日月不相合,就不能形成朔旦冬至; 第五,张宾等人死守立元定法,不明白日月运行有进退盈缩; 第六,张宾等人只知道累加二十九大余作为朔日,不知道以日月交会为准确定朔日。
这六件事,都是历数的大纲,圣贤相传的根本方法,刘晖不懂这些,见识如同管中窥豹。至于用日影定节气,是何承天的长处,张宾等人的推算,偏离很远。合朔顺应天象,是何承天没能做好的地方,张宾承袭何承天的疏漏,沿着错误的路子走。等于丢掉精华,只拾取糟粕。
又说:魏明帝时期,尚书郎杨伟修订《景初历》,上表立论,驳正前人错误,说:加时落在天象之后,日食不在朔日。但是杨伟本意,是认为日食应当在朔,却没能完善术法。刘宋元嘉年间,何承天上表说:月亮运行快慢不定,合朔月食未必在朔望,这不是历法本来的目标。但是何承天本意,是想建立合朔的算法,遭到皮延宗非难,没能推行。北魏献帝之时,龙宜弟修订《延兴历》,又上表说:日食不在朔,后人习以为常,但是《春秋》记载日食,正是上天验证朔日的凭证。
这三位,都是前代精通历法的人,都有这个想法,却没能把正法写进历法。历法最重要的,就是朔、气。朔是朝会的开端,节气是万物生长的起点,朔有告饩的礼制,节气有郊迎的大典。所以孔子修历,以朔旦冬至为准则,作为后世规范。现在刘孝孙的历法,全部依据典籍明文,以月亮运行快慢定合朔,力求日食一定在朔,不在晦日、初二。就算连续小月、三大月,也合乎天道。大体有三条证据,罗列如下:
第一,考证日食一定在朔。 引用《诗经》:十月之交,朔日辛卯,日有食之。用《甲子元历》推算,完全吻合。《春秋》记载日食三十五次。二十七次日食经文写明朔日,推算和《甲子元历》一致;八次日食经文没有写朔。《左传》说:不写朔,是史官的过失。《公羊传》说:不说朔,是初二日食。《谷梁传》说:不说朔,是晦日日食。现在用《甲子元历》推算,全都是朔日发生日食。左丘明亲受孔子传授,理解最为准确,《公羊》《谷梁》都是臆测。
《春秋左传》隐公三年二月己巳,日食。推算是己巳朔。 庄公十八年春三月,日食。推算是壬子朔。 僖公十二年三月庚午,日食。推算是庚午朔。 僖公十五年夏五月,日食。推算是癸未朔。 襄公十五年秋八月丁巳,日食。推算是丁巳朔。
前汉、后汉、魏、晋四代记载日食,朔、晦、晦前一天,一共一百八十一次。用《甲子元历》推算,全部都是朔日食。 前汉四十五次日食:三次在晦前一日,三十二次晦日,十次朔日。 后汉七十四次日食:三十七次晦日,三十七次朔日。 魏十四次日食:四次晦日,十次朔日。 晋四十八次日食:二十五次晦日,二十三次朔日。
第二,考证宿度变化。 《尚书》说:日短星昴,以正仲冬。意思是唐尧的时候,冬至当天太阳在危宿,黄昏昴星在正南中天。据《竹书纪年》,尧元年丙子。用《甲子元历》推算,尧时冬至黄昏,昴星正中。《汉书》记载汉武帝太初元年丁丑,落下闳等人定太初历冬至,太阳在牵牛初度。现在用《甲子元历》推算,冬至太阳在斗宿末尾、牛宿开端。晋代姜岌,用月食反推太阳位置,知道冬至太阳在斗宿十七度。宋文帝元嘉十年癸酉,何承天测候,也知道冬至太阳在斗宿十七度。虽然说冬至前后三天浮动,但是基准就是斗十七度。尧时、汉时太阳位置不一样,晋、宋位置不变,可见黄道度数确实有岁差。到大隋甲辰年,考校天象历数,冬至太阳在斗宿十三度。
第三,考证节气日影长短。 《春秋纬·命历序》记载:鲁僖公五年正月壬子朔旦冬至。用《甲子元历》推算,吻合无误。《宋书》元嘉十年,何承天用土圭测影,发现冬至已经偏差三天。朝廷下令外官实测,从元嘉十三年到元嘉二十年,八年之中,历法标注冬至,总是比日影最长的日子晚三天。用《甲子元历》推算,冬至和影长之日完全吻合。分列如下: 十三年丙子: 天正十八日,旧历标注冬至; 十五日影最长,也就是新历冬至日。 十四年丁丑: 天正二十九日,旧历标注冬至; 二十六日影最长,也就是新历冬至日。 十五年戊寅: 天正十一日,旧历标注冬至; 阴天,没有日影可测; 新历八日冬至。 十六年己卯: 天正二十一日,旧历标注冬至; 十八日影最长,也就是新历冬至日。 十七年庚辰: 天正二日,旧历标注冬至; 十月二十九日影最长,也就是新历冬至日。 十八年辛巳: 天正十三日,旧历标注冬至; 十日影最长,也就是新历冬至日。 十九年壬午: 天正二十九日,旧历标注冬至; 阴天,无日影可测; 新历二十二日冬至。 二十年癸未: 天正六日,旧历标注冬至; 三日影最长,也就是新历冬至日。
当时新历刚刚颁行,张宾深得隋文帝宠信,刘晖依附他,升任太史令。二人一同诋毁刘孝孙,说他诋毁朝廷历法,说法迂诞怪异;刘焯又帮他佐证,迷惑世人。刘孝孙、刘焯最后借别的罪名被斥退罢官。后来张宾去世,刘孝孙当时是掖县丞,丢下官职进京,再次上书,多次被刘晖诘难,事情搁置不能施行。朝廷留刘孝孙在太史署值班,多年不升迁,寄居在观台。他抱着自己的历书,弟子抬着棺材,到宫门前伏地痛哭。执法官员把他拘押上奏,隋文帝觉得奇怪,询问国子祭酒何妥。何妥说他的历法很好,当天就拜刘孝孙为大都督,让他和张宾历比对优劣。
此前信都人张胄玄,凭借算术在太史署供职,长久不出名。这时他和刘孝孙一同驳斥张宾历,各方争论四起,很久不能定案。开皇十四年七月,隋文帝命人问询日食预报。杨素等人上奏:太史一共预报二十五次日食,只有一次晦日、三次朔日,到时间发生日食,还不能报准时刻、初亏方位,其余全都没有应验。张胄玄预报的日食,前后十分精准,食起时刻、分数,和天象严丝合缝。刘孝孙预报的日食,应验的也超过一半。于是隋文帝召见刘孝孙、张胄玄等人,亲自加以慰劳。刘孝孙趁机请求先斩杀刘晖,才可以修订历法。隋文帝很不高兴,这件事又搁置下来。不久刘孝孙去世,杨素、牛弘等人痛惜他,又举荐张胄玄。隋文帝召见张胄玄,张胄玄趁机陈述白昼渐长、日影变短的天象,隋文帝十分喜悦,赏赐十分丰厚,让他参与修订新历法。刘焯听说张胄玄得到任用,又对刘孝孙的历法加以增删修改,改名为《七曜新术》,进呈朝廷。这部历法和张胄玄的历法,多有矛盾不合之处,袁充与张胄玄忌惮刘焯,刘焯又遭到罢黜。到开皇十七年,张胄玄的历法修成,上奏朝廷。隋文帝交付杨素等人核验它的优劣得失。刘晖和国子助教王頍等人持守旧历法,轮番诘难辩驳,会同司历刘宜援引古史中的日影记录,驳斥张胄玄说:
《命历序》记载僖公五年,天正壬子朔初一为冬至;《左传》记载僖公五年正月辛亥朔,太阳到达南至点。张宾历法,天正壬子朔冬至,契合《命历序》,比《左传》差一天。张胄玄历法,天正壬子朔,契合《命历序》,比《左传》差一天;甲寅日为冬至,比《命历序》差二日,比《左传》差三日。成公十二年,《命历序》记载天正辛卯朔初一为冬至。张宾历法,天正辛卯朔冬至,契合《命历序》。张胄玄历法,天正辛卯朔,契合《命历序》;壬辰日为冬至,比《命历序》差一天。昭公二十年,《春秋左传》记载二月己丑朔,太阳南至;依照《命历序》则是庚寅朔初一冬至。张宾历法,天正庚寅朔冬至,一并契合《命历序》,比《左传》差一天。张胄玄历法,天正庚寅朔,契合《命历序》,比《左传》差一天;辛卯日为冬至,比《命历序》差一天,比《左传》差二日。核查《命历序》与《春秋左传》,凡是闰余消尽的年份,都应当朔日清晨恰逢冬至。如果依照《命历序》核验《春秋》所载三十七次日食,相合之处很多;如果依照《左传》,相合之处极少,由此可知《左传》记载有误。如今张胄玄随意设置闰月,《命历序》和《左传》记载的节气、朔日全都出现偏差。
另外南朝宋元嘉年间冬至日影记录共有七次,张宾历法相合五次,偏差两次,都提前一天。张胄玄历法相合三次,偏差四次,都延后一天。元嘉十二年十一月甲寅朔,十五日戊辰冬至,日影最长。张宾历法以戊辰为冬至,张胄玄历法以己巳为冬至,延后一天。元嘉十三年十一月己酉朔,二十六日甲戌冬至,日影最长。张宾历法以癸酉为冬至,提前一天,张胄玄历法契合甲戌冬至。元嘉十五年十一月丁卯朔,十八日甲申冬至,日影最长。两部历法都契合甲申冬至。元嘉十六年十一月辛酉朔,二十九日己丑冬至,日影最长。张宾历法契合己丑冬至,张胄玄历法以庚寅为冬至,延后一天。元嘉十七年十一月乙酉朔,十日甲午冬至,日影最长。张宾历法契合甲午冬至,张胄玄历法以乙未为冬至,延后一天。元嘉十八年十一月己卯朔,二十一日己亥冬至,日影最长。张宾历法契合己亥冬至,张胄玄历法以庚子为冬至,延后一天。元嘉十九年十一月癸卯朔,三日乙巳冬至,日影最长。张宾历法以甲辰为冬至,提前一天,张胄玄历法契合乙巳冬至。
再从北周天和元年丙戌年到开皇十五年乙卯年,可核验的冬至、夏至日影一共十四条。张宾历法相合十条,偏差四条,其中三条提前一天,一条延后一天。张胄玄历法相合五条,偏差九条,八条延后一天,一条提前一天。天和二年十一月戊戌朔,三日庚子冬至,日影最长。张宾历法契合庚子冬至,张胄玄历法以辛丑为冬至,延后一天。天和三年十一月壬辰朔,十四日乙巳冬至,日影最长。张宾历法契合乙巳冬至,张胄玄历法以丙午为冬至,延后一天。建德元年十一月己亥朔,二十九日丁卯冬至,日影最长。张宾历法以丙寅为冬至,提前一天,张胄玄历法契合丁卯冬至。建德二年五月丙寅朔,三日戊辰夏至,日影最短。张宾历法以己巳为夏至,延后一天,张胄玄历法以庚午为夏至,延后二日。建德三年十一月戊午朔,二十日丁丑冬至,日影最长。张宾历法契合丁丑冬至,张胄玄历法以戊寅为冬至,延后一天。建德六年十一月庚午朔,二十三日壬辰冬至,日影最长。张宾历法契合壬辰冬至,张胄玄历法以癸巳为冬至,延后一天。宣政元年十一月甲午朔,五日戊戌冬至,日影最长。两部历法都契合戊戌冬至。开皇四年十一月己未朔,十一日己巳冬至,日影最长。张宾历法契合己巳冬至,张胄玄历法以庚午为冬至,延后一天。开皇五年十一月甲寅朔,二十二日乙亥冬至,日影最长。张宾历法以甲戌为冬至,提前一天,张胄玄历法以庚辰为冬至。开皇七年五月乙亥朔,九日癸未夏至,日影最短。张宾历法以壬午为夏至,提前一天,张胄玄历法契合癸未夏至。同年十一月壬申朔,十四日乙酉冬至,日影最长。张宾历法契合乙酉冬至,张胄玄历法以丙戌为冬至,延后一天。开皇十一年十一月己卯朔,二十八日丙午冬至,日影最长。张宾历法契合丙午冬至,张胄玄历法以丁未为冬至,延后一天。开皇十四年十一月辛酉朔,清晨冬至。张宾历法契合十一月辛酉朔清晨冬至,张胄玄历法十一月辛酉朔,壬戌日为冬至,延后一天。建德四年四月大,乙酉朔,三十日甲寅,清晨月亮出现在东方。张宾历法四月大、乙酉朔,三十日甲寅,清晨月亮出现在东方;张胄玄历法四月小、乙酉朔,五月大,甲寅为朔日,清晨月亮出现在东方。
依据准则,日影最长就是冬至,日影最短就是夏至,从古史中可以核验的二至记录共二十四条,二十一条有日影记载,三条只有二至日期、没有日影记录。现行历法相合十八条,偏差六条。旅骑尉张胄玄的历法相合八条,偏差十六条,两条延后二日,十四条延后一日。另外开皇四年,在洛州测量冬至日影,和京师两处比对,长短分毫不差。北周天和年间以来核验的记录,张胄玄的历算结果大多偏晚。再核查建德四年,月末朔日清晨月亮东出;按照张胄玄历法,五月朔日,清晨月亮出现在东方。到开皇十七年,张宾历法闰七月,张胄玄历法闰五月。再者,以准确的二至来确定闰月,张胄玄历法推算的二至既然不准,可知他设置闰月必然有错。现行历法四月、五月连续为大月,张胄玄历法九月、十月连续为大月,是因为张胄玄朔日推算偏弱,连续大月靠后,所以朔日残月会在清晨出现在东方。
又核查开皇四年十二月十五日癸卯,依照历法月亮运行在鬼宿三度,酉时,月亮在卯位,食分十五分之九,亏缺起于西北。实际观测:一更一筹开始食,亏在东北角,食分十五分之十,到四更生光,二更一筹复圆。开皇五年六月三十日,依照历法发生日食,太阳在七星六度,午时稍偏强,食分十五分之一半强,亏起西南角。实际观测:午后六刻才开始日食,亏起西北角,食分十五分之六,未后一刻生光,五刻复圆。开皇六年六月十五日,依照历法发生月食,酉时,月亮在卯位,食分十五分之九半弱,亏起西南。当时阴云遮蔽,看不见月亮。等到辰、巳时分,云缝中看见月亮,已经食去三分之二,亏缺从东北开始,随即又被云遮住。巳、午之间渐渐生光,午后云里短暂显现,已经复圆。十月三十日丁丑,依照历法发生日食,太阳在斗宿九度,辰时稍偏弱,食分十五分之九强,亏起东北角。实际观测:太阳出山一丈高,辰二刻才开始日食,亏起正西,食去三分之二,辰后二刻生光,巳时三刻复圆。开皇十年三月十六日癸卯,依照历法月亮运行在氐宿七度,戌时,月亮在辰位大半,食分十五分之七半强,亏起东北。实际观测:月亮刚从卯南升起,已经带着半食,升到辰初三分,大约食去二分,慢慢生光,辰未时分就已经复圆。现行历法九月十六日庚子,月亮运行在胃宿四度,丑时,月亮在未位半强,食分十分之三半强,亏起正东。实际观测:午后二刻月食从正东开始,片刻之后亏面向南,未正之时,南侧食去五分之四,渐渐生光,申一刻半复圆。开皇十二年七月十五日己未,依照历法月亮运行在室宿七度,戌时,月亮在辰位太强,食分十五分之十二半弱,亏起西北。实际观测:一更三筹从西北起食,食去大约三分之二强,和历法标注一致。开皇十三年七月十六日,依照历法月亮在申位半强,食分十五分之半弱,亏起西南。十五日夜,四更开始守候月亮,五更一筹从东北起食,食去半强,随即入云不见。开皇十四年七月一日,依照历法巳时偏弱发生日食,食分十五分之十二半强。实际等到未后三刻才发生日食,亏起西北,食去大约一半,随即入云不见,片刻短暂露出,还没有生光,又被云遮蔽。开皇十五年十一月十六日庚午,依照历法月亮运行在井宿十七度,亥时,月亮在巳位半,食分十五分之九半强,亏起西北。当夜一更四筹之后,月亮在辰位起食,亏在东南,二更三筹,月亮在巳位,食去大约三分之二,慢慢生光,三更一筹,月亮在丙位,复圆。开皇十六年十一月十六日乙丑,依照历法月亮运行在井宿十七度,丑时,月亮在未位太弱,食分十五分之十二半弱,亏起东南。十五日夜守候,三更一筹,月亮在丙位,云里看见,已经食去十五分之三左右,亏起正东,运行到丁位之时全食,之后从东南方向生光,四更三筹,月亮行至未宿末尾,复圆。而张胄玄的推算,不能全部与实测相合。
双方轮番辩驳诘难,隋文帝心中疑惑,很久不能决断。恰逢通事舍人颜慜楚上书说:“汉代落下闳改《颛顼历》,制成《太初历》,说往后八百年,这部历法就会差一天。”相关记载在《张胄玄传》之中。隋文帝想要神化这件事,于是下诏说:“朕顺应天命,君临天下,想要振兴圣道教化,弘扬美好典章,上顺天道,下授农时,搜求天下贤才,广召通晓术数之人。旅骑尉张胄玄,思虑深沉敏锐,历数技艺精深博大,潜心此道直到白头,进献新历法。朕令它和太史旧历法一同核验审察。仰观天象,参验璇玑玉衡,张胄玄的历数和日月五星运行相合,太史现在施行的旧历,多有疏漏错谬。百官广泛评议,都认为张胄玄的历法精密。太史令刘晖,司历郭翟、刘宜,骁骑尉任悦,从前参与修订旧历,造成这些差错。通直散骑常侍、领太史令庾季才,太史丞邢俊,司历郭远,历博士苏粲,历助教傅俊、成珍等人,身为本职官员,本应当辨别历法疏密。却放任这部粗疏历法施行,没有匡正发明。论刘晖等人的情状,本当依法治罪,他们还一同掩饰过错、护短拒谏,不肯服从正法。庾季才等人附和下属、欺瞒君上,于道义上实在难以宽恕。”于是刘晖等四个最初造伪的人,全部除名;庾季才等六人,包庇纵容奸伪,一并解除现任官职。张胄玄所造历法,交付相关官署施行。提拔张胄玄为员外散骑侍郎,兼任太史令。张胄玄举荐袁充,二人互相推重,各自夸耀自己的专长,彼此互相称扬。张胄玄说袁充的历法精妙,超越前代贤士;袁充说张胄玄的历术冠绝古今。张胄玄的学问师承祖冲之,同时传承先师的法式。从此以后,推算交食大体准确。开皇十七年颁行的这部历法,定冬至起于虚宿五度。后来渐渐发现它粗疏,到大业四年刘焯去世之后,才敢修改法式,定冬至起于虚宿七度,各类比率、算法都加以增减调整,朔法至此才算稳定。这里记录大业戊辰年定稿的历法,写在本篇之中。
从甲子元到大业四年戊辰年,一共一百四十二万七千六百四十四年,不计入本年。
章岁:四百一十 章闰:一百五十一 章月:五千零七十一 日法:一千一百四十四 月法:三万三千七百八十三 辰法:二百八十六 岁分:一千五百五十七万二千九百六十三 度法:四万二千六百四十 没分:五百一十九万一千三百一十一 没法:七万四千五百二十一 周天分:一千五百五十七万四千四百六十六 斗分:一万零八百六十六 气法:四十六万九千零四十 气时法:一万零六百六十 周日:二十七 日余:一千四百一十三 周通:七万零二百零九 周法:二千五百四十八
【推积月算法】 取上元以来到所求年份,用章月相乘,除以章岁,商为积月,余数为闰余。闰余在三百九十七以上,如果冬至不在当月,积月再加一。
【推月朔弦望算法】 用月法乘积月,除以日法,商为积日,余数为小余。积日不断减去六十,剩余为大余,从甲子起算,不计本身,就是所求年天正正月朔日。天正正月,就是建子之月,也就是上一年十一月。凡是朔小余在五百四十七以上,这个月是大月。
大余加七,小余加四百三十七太;四分一叫少,二分叫半,三分叫太。小余满日法就进位加到日上,满六十就减去六十,依照前面方式起算,就是上弦日。继续累加,得到望、下弦、次月朔日。朔余满五百三十七,当月为大月,不足则为小月。
【推二十四气算法】 用月法乘闰余,再用章岁乘朔小余,两数相加,除以气法,商为日,从朔日起算不计本身,就是冬至日。余下的数,用十一约分,作为日分。
求下一个节气:日加十五,日分加九千三百一十五,小分加一;小分满八就进一到日分,日分满度法就进一到日;按照当月大小减去天数,日期没有超出当月,不计本身,就是下一节气。当月没有中气的,就是闰月。
【求朔望入气盈缩算法】 用入气日数乘损益率,除以十五,余数八以上,进一;以此增减盈缩数,得到定盈缩。如果入气日正好十五,就除以十六,余数过半法也进一,其余都照这个规则。
【推土王算法】 在分、至之日上加二十七日,日分加一万六千七百六十七,小分加九;小分满四十进一到日分,日分满度法进一到日,依照前面规则去余起算,就是分、至之后土气开始主事的日子。
【推没日算法】 这个节气带有小分的,用八乘日分,并入小分,再乘以十五,用没分减去这个数;没有小分的,用一百二十乘日分,再用没分减去;结果满没法,商为日,余数为日分,把这个节气距离朔日的天数加上,去余、起算和前面一样。
求下一个没日:日加六十九,日分加四万九千三百七十二;日分满没法,进位到日,去余、起算同上。
【推入迟疾历算法】 用周通去除朔积日,余数乘周法,满周通再减去,余数满周法得一日,剩下的是日余,就是所求年天正朔夜半入历的日数和余分,不计朔日本身。
求次月:大月加二日,小月加一日,日余都加一千一百三十五,满周日、日余就减去。
求次日:加一日,满限去余同上。
【求朔望加时入历算法】 用四十九乘朔小余,满二十二得一为日余,剩下的是小分,加到夜半入历日和余分之上。
求次月:日加一,余加二千四百八十六,小分加二十一,满限去余同上,就是次月入历日和余分。
求望:日加十四,余加一千九百四十九,小分二十一半,满限去余同上,就是望入历日和余分。
【推朔望加时定日及小余算法】 用入历日余乘当日损益率,增减盈缩积分,除以差法,得到定积分。定积分和入气定盈缩合并,盈就减去本朔望小余,缩就加上本朔望小余;不够减的,加上日法再减,加时落在前一天;相加之后满日法就减去,落在后一天;剩下的就是定小余。没有交食的,不需要用气的盈缩。
角宿十二度,亢宿九度,氐宿十五度,房宿五度,心宿五度,尾宿十八度,箕宿十一度 东方七宿,合计七十五度
斗宿二十六度,牛宿八度,女宿十二度,虚宿十度,危宿十七度,室宿十六度,壁宿九度 北方七宿,合计九十八度
奎宿十六度,娄宿十二度,胃宿十四度,昴宿十一度,毕宿十六度,觜宿二度,参宿九度 西方七宿,合计八十度
井宿三十三度,鬼宿四度,柳宿十五度,星宿七度,张宿十八度,翼宿十八度,轸宿十七度 南方七宿,合计一百一十二度
【推日度算法】 取上元到所求年份,乘以岁分,得到通实,满周天分就减去,余数除以度法,商为积度,余下为度分。从虚宿七度开始依次扣除宿度,经过斗宿时单独扣除斗分;度数不够一个宿,不计本身,就是所求年天正冬至太阳所在宿度和分。用冬至距离朔日的天数,减去这个度分;度分不够减,就减一度,加上度法再减,起算同上,就是天正朔前夜半太阳所在宿度和分。如果需要朔日共同度数,就减去距离定用日的天数,等候后续取用。
求次月:大月加三十度,小月加二十九度,依次扣除宿度,经过斗宿时扣除斗分。
求次日:加一度,去余起算同上。
【求朔望加时日所在度算法】 各自用定小余乘章岁,满十一为度分,加到之前夜半的度分之上,满限去余同上。凡是朔日加时,日月度数相同。
求转分:用一千零四十约分度分,余下的是小分。
【求望加时月所在度算法】 取望加时太阳所在度和分,加一百八十二度,转分加二十五,小分加七百五十三;小分满一千零四十进一到转分,转分满四十一进一到度;去余起算同上,经过斗宿时扣除转分十、小分四百六十六。
【求月行迟疾日转定分算法】 用夜半入历日余乘转差,满周法得一为变差,进则加、退则减日转分,得到定分。
【推朔望夜半月定度算法】 用定小余乘入历日转定分,满日法得一为分,分满四十一为度,各自从加时月亮所在度减去,就得到夜半月亮定度。
求次日:用日转定分累加转分,满四十一进一度,去余起算同上;朔日不用前面的加法。
【推五星算法】 木星数:一千七百万八千三百三十二又四分之一 火星数:三千三百二十五万六千零二十六 土星数:一千六百一十二万一千七百六十七 金星数:二千四百八十九万八千四百一十七 水星数:四百九十四万一千零九十八
木星终日:三百九十八日,日分三万七千六百一十二又四分之一 火星终日:七百七十九日,日分三万九千四百六十六 土星终日:三百七十八日,日分三千八百四十七 金星终日:五百八十三日,日分三万九千二百九十七;晨见伏周期三百二十七日,日分相同;夕见伏周期二百五十六日 水星终日:一百一十五日,日分三万七千四百九十八;晨见伏周期六十三日,日分相同;夕见伏周期五十二日
【求星见算法】 取通实,分别用各星之数去除,余数再减去该星之数,所得余数除以度法,商为日,余下为日分,就是所求年天正冬至之后清晨平见的日期和分。金星、水星,减去夕见伏日数,剩下的就是傍晚平见日期和分。
求平见所在月日:取冬至距离朔日的天数和分,加上冬至之后的日数和分,分满度法进一日,从天正正月起,依照月份大小依次扣除,不足一月的,就是距离朔日的天数,不计本身,就是行星出现的月份日期和分。
求下一次出现:各加上终日和日分,满限去余同上。金星、水星分别按晨、夕累加,满限去余,加晨得夕,加夕得晨。
木星:平见时间在春分之前的,用三千三百四十乘距离大寒后十日的天数,加到平见分上,满法去余,作为定见日和分。立秋之后的,用四千二百乘距离寒露的天数,加上,满法同上。春分到清明一律加四日;清明到立夏加五日;立夏到芒种加六日,一直到立秋。小雪之前,用七千四百乘距离寒露的天数,减去平见日分;冬至之后,用八千三百乘距离大寒后十日的天数,减去;小雪到冬至一律减八日,得到定日数。初次出现、隐伏,距离太阳都是十四度。
火星:平见在雨水之前,用二万六千八百八十乘距离大寒的天数;立夏之后,用一万三千四百四十乘距离立秋的天数,加到见日分上,满法去余同上;雨水到立夏一律加二十九日。小雪之前,用一万一千五百八十乘距离处暑的天数;冬至之后,用三万四千三百八十乘距离大寒的天数,满法去余同上,用来减去;小雪到冬至一律减二十五日。初次出现、隐伏,距离太阳十七度。
土星:平见在处暑之前,用一万二千三百七十乘距离大暑的天数;白露之后,用八千三百四十乘距离霜降的天数,加到见日分上,满法去余同上;处暑到白露一律加九日。小寒之前,用四千九百八十乘距离霜降的天数;小寒到立春一律减九日;立春之后减八日;启蛰之后每天减一,到谷雨减至三日;夏至后十日减一,到大暑减到零。初次出现、隐伏,距离太阳十七度。
金星:清晨平见,立春之前,用四千一百二十乘距离小寒的天数;小满之后,用四千一百二十乘距离夏至的天数,加到见日分上,满法去余同上;立春到小满一律加三日。立秋之前,用四千一百二十乘距离小暑的天数;小雪之后,用四千一百二十乘距离冬至的天数,满法去余同上,用来减去;立秋到小雪一律减三日。傍晚平见,启蛰之前,用六千三百九十乘距离小雪的天数;清明之后,用六千二百九十乘距离芒种的天数,满法去余同上,用来减去;启蛰到清明一律减九日。处暑之前,用六千二百九十乘距离夏至的天数;寒露之后,用六千二百九十乘距离大雪的天数,加上;处暑到寒露一律加九日。初次出现、隐伏,距离太阳十一度。
水星:清晨平见,雨水之后、立夏之前,应当出现却不出现。启蛰到雨水,距离太阳十八度之外、四十六度之内,清晨有木、火、土、金任意一星以上,才会出现;没有则不出现。立夏到小满,距太阳度数同上,清晨有木、火、土、金一星以上才出现,没有也不出现。霜降至小雪加一日;冬至至小寒减四日;立春至雨水减三日。冬至之前,第一阶段减三,第二阶段减二,第三阶段减一。傍晚平见,处暑之后、霜降之前,应当出现却不出现。立秋到处暑,傍晚有星,距太阳度数同上则出现,无则不现。霜降至立冬,傍晚有星、距太阳同上则出现,无则不现。谷雨至夏至,减二日。初次出现、隐伏,距离太阳十七度。
【行五星算法】 取行星定见之前夜半太阳所在宿度及分,各加上定见日分,满度法进一度。再取行星初见离太阳度数,晨见就减去、夕见就加上,满限去余同上,就是行星初见所在宿度和分。
求次日:各加上一日所行度数和分,带有小分的,以当日行分分母为准,小分满分母进为分,分满度法进一度。运行有快慢变化的,另外记下一日行分,快就增益、慢就减损。停留不动的,沿用前度;退行的,减去度数;隐伏之时不记录度数。顺行经过斗宿,扣除斗分;退行进入斗宿,先加上斗分。计算完毕,都用一千零四十约分,作为大分,以四十一为分母。
木星:初见,顺行,每日行一万零六百一十八分,每日渐慢六十分,一百一十四日行十九度、一万三千八百三十二分,然后停留。二十六日之后退行,每日行六千一百零一分,八十四日退十二度、八百零四分。又停留二十五日、三万七千六百一十二分、小分四,再顺行。初日行三千八百三十七分,每日渐快六十分,一百一十四日行十九度、一万三千七百一十八分,之后隐伏。
土星:初见,顺行,每日行三千八百一十四分,八十三日行七度、一万八千零八十二分,然后停留。三十八日之后退行,每日行二千五百六十三分,百日退六度、四百六十分。又停留三十七日、三千八百四十七分,再顺行,每日行三千八百一十三分,八十三日行七度、一万七千九百九十九分,和初行一样,之后隐伏。
火星初见之后,依照下面法式: 出现时间在雨水之前,用距离小寒的天数;小满之后,用距离大暑的天数;除以三,所得从日数减去,作为定日;雨水到小满,一律减去二十日,作为定日。以上都属于前疾阶段的日数、度数。统计冬至之后的日数,依照损益规则调整,得到定日数、定度数。用度法乘定度,除以定日,就是平行一日分,余下为小分。大寒到立秋是差行,其余时段平行。处暑到白露,都减去定日、定度六。白露到寒露,初日行半度,四十日行二十度,剩余日数、度数接续前面法则。日数减一,乘以三十,加上平行一日分,作为初日行分。差行,每日渐慢六十分,走完规定日、度为止。初日行二万六百分,每日渐慢百分,六十日行二十四度、三万五千六百四十分;前疾阶段扣除六度的,这个迟行初日加四千二百六十四分,六十日行三十度,日分相同,然后停留。十三日前减去日数的,日、分分配在两次停留,零头归后一次停留。之后退行,每日行一万二千零八十二分,六十日退十七度、四十分。又停留十二日、三万九千四百六十六分。又顺行,迟行,初日行一万四千七百分,每日渐快百分,六十日行二十四度,日分和前面相同;这段迟行在立秋至秋分,加一日,行分加四千二百六十四,六十日行四十度,日分相同,之后进入后疾。
后迟阶段加六度的,此后疾阶段以此度数为定度,前面都是后疾的日数、度数。立夏到小暑,日行半度,满六十日,行三十度。小暑到立秋,满四十日,行二十度。剩余日、度,依从前面法则。前面法则都用平行。求行分也同上。走完规定日、度,行星隐伏。
金星:清晨初见,先退行,每日半度,十日退五度,然后停留。九日之后顺行,迟行,差行,一开始慢,每日渐快五百分,四十日行三十度。小暑之前,用距离芒种的天数,每十日减一度;立冬之后,用距离大雪的天数,每十日减一度;小暑至立冬,一律减三度,作为定度。大雪至芒种不加不减。求初日行分:三十乘度法,除以四十,得到平分。再用三十九乘二百五十,从平分减去,得到初日行分。平行,每日一度,十五日行十五度。小寒后十日,每日度数各加一,到雨水,二十一日行二十一度。一直到春分后十日每日减一,到小满,恢复十五日行十五度。之后六日每日减一,到处暑,日数、度数减到零。霜降之后,每四日加一,到冬至,恢复十五日行十五度。疾行,一百七十日行二百零四度。前面顺迟阶段减去度数的,把减去的度数补回来,作为定度。求一日行度分:用一百七十日每日一度,从定度减去,余数乘度法,除以一百七十,得到一日平行度分。清晨隐伏在东方。
傍晚初见,顺行,疾行,一百七十日行二百零四度。夏至之前,用距离小满的天数,每六日加一度;小暑之后,用距离立秋的天数,每六日加一度;夏至至小暑一律加五度,作为定度。白露至清明,差行,一开始快,每日渐慢百分。清明至白露,平行,求一日平行和清晨疾行算法相同;求差行,用五十乘一百六十九,加上,作为初日行度分。平行,每日一度,十五日行十五度。冬至后十日每日度数减一,到启蛰,九日行九度。一直到夏至后五日每日加一,到大暑,恢复十五日行十五度。立秋之后每六日加一,到寒露,二十五日行二十五度。之后六日每日减一,到大雪,恢复十五日行十五度,一直到冬至。顺行,迟行,差行,一开始快,每日渐快五百分,四十日行三十度。前面加过度数的,这里按数目减去;求初日行分,和清晨迟行一样,只是减去的改为加上。再停留九日,然后退行,每日半度,十日退五度,傍晚隐伏在西方。
水星:清晨初见,停留六日。顺行,迟行,每日行一万零六百六十分,四日行一度。大寒至雨水,不用这段迟行。平行,每日一度,十日行十度。大寒后二日起,每日度数减一,满二十日,日、度都减尽。疾行,每日行一度三万八千三百七十六分,十日行十九度;前面没有迟行的,从这个行分减去一万二千七百九十二分,十日行十六度。清晨隐伏东方。
傍晚初见,顺行,疾行,每日行一度三万八千三百七十六分,十日行十九度。小暑至白露,减去一万二千七百九十二分,十日行十六度。平行,每日一度,十日行十度。大暑后二日起,每日度数减一,满二十日,日、度减尽。迟行,每日行一万零六百六十分,四日行一度。疾行时已经减过分的,不再走这段迟行。运行之后停留六日,傍晚隐伏西方。
【推交会算法】 会通:一千零六十四万六千七百二十九 朔差:九十万七千零五十七 望差:四十五万三千五百二十八半 单数:五百三十二万三千三百六十四半 时法:三万二千六百零四 望数:五百七十七万六千八百九十三 外限:四百八十六万九千八百三十六 内限:一千零一十九万三千二百半 中限:五百六十四万九千四百四半 次限:一千零三十二万零六百八十九
【推入交法】 用会通去除积月,余数乘朔望差,满会通再减去,余数就是所求年天正朔入交余。
求望:加上望数,满限去余同上。
求次月:加上朔差,满限去余同上。
【推交道内外及先后去交算法】 朔、望在启蛰之前,用一千三百八十乘距离小寒的天数;谷雨之后,用这个数乘距离芒种的天数,得到气差,加上;启蛰到谷雨一律加六万三千六百;满会通减去,余数为定余。小寒至春分、立夏至芒种,朔日盈二时以下,都加一半气差;二时以上,不加气差。朔入交余在望差、望数之下,中限之上,如果有行星隐伏:木星、土星距离出现日期十天以外,火星距离出现四十日以外,金星清晨隐伏距离出现二十二日以外。只要有一颗星符合,不加气差。
朔、望在白露之前,用九百乘距离小暑的天数;立冬之后,用一千七百七十乘距离大雪的天数,用来减去;白露至立冬一律减五万五千;不够减的,加上会通再减,余数为定余。朔入交余在外限、内限之上,单数、次限之下,有星隐伏、和上面条件一样的,不减气差。定余不满单数,是在外道;满单数就减去单数,余数在内道。余数在望差之下、外限之上,望日就是月食;在内道的,朔日就是日食。余数在望差之下,就是距离先交的余;余数在外限之上,用单数减去,余数是距离后交的余。除以时法,得到去交时数。
【推月食加时算法】 取食定日小余,乘以三,除以辰法,商为辰,从子起算不计本身,就是所在时辰。余下的是时余,乘以四,除以辰法,得零为辰初,得一为少,得二为半,得三为太。还有剩余的,再乘以三,除以辰法,得一为强;少加强叫少强,半加强叫半强,太加强叫太强;得二强叫少弱,少加二强叫半弱,半加二强叫太弱,太加二强就是辰末。这里的加时,指食时月亮在太阳对冲的方位。
【推日食加时算法】 取食定日小余,秋季三月、内道,去交八时以上,加二十四;十二时以上,加四十八;春季三月、内道,去交七时以上,加二十四。之后乘以三,除以辰法,商为辰,从子起算不计本身,就是所在时辰。余下的是时余。另外记下时余:仲辰不满半辰,减去半辰;超过半辰的,去掉半辰;季辰直接加半辰;孟辰减去辰法,剩余加半辰,作为差率。
再取去交时数:三时以下加三,六时以下加二,九时以下加一,九时以上用原数,十二时以上按十二算;用这个数乘差率,除以十四,得到时差。子半到卯半、午半到酉半,时差加到时余上;卯半到午半、酉半到子半,时差从时余减去。相加满辰法就减去,进一个时辰;相减不够,退一个时辰,剩下的是定时余。之后和月食算法一样。子午卯酉是仲辰,辰戌丑未是季辰,寅申巳亥是孟辰。日出前、日入后二时之外,不记录日食。三倍气时法,商为时辰,从子起算不计本身,就是时刻。
【求外道日食法】 去交一时之内,会发生日食。夏季去交二时之内,加时在南方三辰,会发生日食。如果距离二分二至十二时之内、去交六时之内,也会日食。春分前三日内,后交二时之内;秋分前三日内,先交二时之内,也会日食。先交二时之内,恰逢盈二时以外;后交二时之内,恰逢缩二时以外,也会日食。所有去交三时之内,行星隐伏符合前面条件的,会发生日食。
【求内道日不食法】 加时在南方三辰,五月朔、先交十三时以外;六月朔、后交十三时以外,不发生日食。启蛰到谷雨,先交十三时以外,恰逢缩,加时在未以西,不日食。处暑到霜降,后交十三时以外,恰逢盈,加时在巳以东,不日食。
【求月食分】 春后交、秋先交、冬后交,都减去不食余一时;不够减的,全食。剩余以三万二百三十五为法,得一为不食分。余下过半法叫半强,不足叫半弱,用十五减去不食分,余数就是食分。
【推日食分算法】 秋分之前,用距离夏至的天数乘二千,减去去交余;不够减的,用十八万四千减去余数,得到不食余。也用望差减去,得到定法。后交恰逢缩的,都不减望差,直接以望差作为定法。启蛰之后,用距离夏至的天数乘一千五百,减去;秋分到启蛰,一律减十八万四千,不够减同上。大寒至小满,去后交五时以外,都减去不食余一时。时差需要扣减的,先交就减,后交就加;不够减就全食;应当加的,先交加,后交减;不够减就全食。
【求食亏起方位】 内道日食,亏起西北;外道日食,亏起西南。食分十三分以上,从正左起亏。亏起方位,都以食甚时刻为准;月食从月亮运行方向上起亏。
【求日出入所在算法】 取本气的辰刻及分,和后一气辰刻及分相减,余数乘入气日数,除以十五,用来增减本气刻分,得到定刻。
志第十三 律历下 开皇二十年,袁充上奏说白昼渐长、日影变短,隋文帝于是把历法之事交付皇太子,令他进一步研讨,核实日长的征候。太子征召天下通晓历算的士人,全部汇集到东宫。刘焯趁着太子刚刚立储,又增改修订自己的著作,定名《皇极历》,辩驳纠正张胄玄历法的缺陷。太子十分赞赏这部历法,却没有机会核验实测。刘焯担任太学博士,自恃学问精深广博,一心想要取代张胄玄太史令的职位,对官职不满,又自称患病辞官回乡。到仁寿四年,刘焯向皇太子上书陈述张胄玄历法的错谬,一共四条:
第一条:张胄玄所进献、现在施行的历法,日月交食、五星出现留止,虽然没有尽善尽美,大体还算相合,他官至五品,本来没有什么愧处。但他是依托前人成果成事,并不是自己独立创述,仔细推究,违误错漏非常多。
第二条:张胄玄推算弦望晦朔,违背古制而且粗疏;节气、闰候的安排,和天象不合。时辰不从夜半子正起算,清晨之前另外算作后一日。不懂得太阳运行快慢的变化,凭空把月亮运行分成两类;月亮运行的转度,遗漏盈缩的变化;推算交会的时候,自行杜撰气差。日月五星的运行,不遵循固有轨道;月亮、恒星的度数,进退没有法度;应当在黄道却算成赤道,应当靠近反而算成遥远;交食推算没有准则,阴阳进退没有法式。星象度数不相契合,日月运行不能同步;盈缩没有条理,行度次序错乱。北极距度、晷刻漏数,该有的条目却缺失;交食食分、先后时刻,繁琐杂乱。测候当今天象不够精准,考校古史不能贯通,立术的疏漏,数都数不完。现在逐条纠举辩驳,一共五百三十六条。
第三条:张胄玄在开皇五年,张宾历法施行之后,借着本州贡举,带着自己造的历法打算进献朝廷。这部历法在家乡流传,抄写副本很多,如今现行的历法,和我从前的历法没有差别。张胄玄当初准备进献的时候,年近六十,不是仓促临时编撰,为什么到京城没多久,就改成和我的历法一致,和他旧稿差别巨大?我在前撰作,张胄玄在后献历,舍弃自己旧稿而依从我的,暗中相合。况且刘孝孙承袭我的学说,张胄玄又依附刘孝孙,历法文字,大多本是刘孝孙所作,源头抄袭的痕迹十分清楚。怕张胄玄掩饰推脱,所以依照旧历逐条辩驳,一共七十五条,连同旧历原本一同进呈。
第四条:张胄玄身为史官,自己上奏的交食记录,前后上报的结果,大多和他的历法推算不合,现在核算他错谬的地方,一共十三件。之前他和太史令刘晖等人核验历法疏密五十四件事,自称新历相合五十三件。按理说后造的历法应当比旧历精密,用现在的算法推求,反而比原来粗疏。现在连同前面的错谬一并揭发,一共四十四条。
第五点说:张胄玄对于历法,并不算精通。但是刘孝孙当初创制历法,处处都有考究,推求天象、测算步度,所有结论都来源于对天的观测,不是凭空成文、单凭主观臆断。
第六点说:刘焯在开皇三年,奉敕命修订历法,翻阅记录注记,自认为推演精微,从秦汉以来,没有人能和他相比。探寻圣人留下的轨迹,领会前代哲人的用心,观测日月五星的运行,测度日月星辰的行度,校正节气、朔日,修成一部历法,融会贯通古今,与经传记载相合,核验各类天象,确凿而有证据。凡是张胄玄历法违背天象之处,刘焯的历法全都契合;张胄玄历法缺漏的地方,这部历法全都具备,统括始末,可以说是完备周全。
刘焯又上奏启说:“自从上古宣扬教化的木铎沉寂,先圣的遗言散若灰烬,天下生民流离离散,华夏大地战乱纷起,方术技艺如同浮云飘散,执掌天文历法的畴人世家断绝传承,历法纲纪废弛败坏,已经千百年了。刘焯资质鄙陋,承蒙朝廷选拔擢用,专心研习历术,潜心钻研天象数度,在一众儒士之中勉力探求,希望能够领会圣人制历的本意。开皇初年,我奉敕编撰历法,只是性情不合时宜,功业没能最终完成,成果却被张胄玄窃为己用;他的版本没能尽得精妙,和天时多有乖错,身居太史之官却扰乱历数,实在有辱帝王的宏图。请求征召张胄玄前来答辩,核验两家历法的优劣长短。”
刘焯又撰作辨析各家历法异同的著作,名叫《稽极》。大业元年,著作郎王劭、诸葛颍二人,趁入宫侍宴的机会,向隋炀帝进言,说刘焯精通历法,推步测算精密审慎,举证清晰明白。炀帝说:“我早就知道了。”于是把刘焯的历法下发,交给张胄玄参验校勘。张胄玄撰文诘难辩驳:“刘焯的历法设有岁率、月率,同时采用定朔,月份会出现三大月、三小月的情况。考索岁率、月率,就是平朔体系里的章岁、章月。用平朔的比率去推算定朔,遇到三个小月,就好比把三五减成十四;遇到三个大月,就好比把三五增成十六。推究其中的道理,都不符合十五日的正理。从前张衡、何承天都曾经有过定朔的构想,发难的人拿实测历数去核验他们的比率,比率全都不能自洽,所以最终没能成功。如今刘焯要推行定朔,就应当舍弃这套平朔比率,才可行。”双方往复辩驳诘难,是非始终无法定论,刘焯再次罢官回乡。
大业四年,炀帝巡幸汾阳宫,太史上奏:依照现行历法推算日食,和天象不符,推算失效。炀帝征召刘焯,打算颁行他的历法。当时袁允正得到炀帝宠信,袒护张胄玄,一同排挤刘焯的历法;恰逢刘焯去世,这部历法最终没能颁行。方术之士全都称赞它精妙,所以这里收录它的算法。甲子元,距离大隋仁寿四年甲子,积算一百零八万零八百四十。
岁率:六百七十六 月率:八千三百六十一 朔日法:一千二百四十二 朔实:三万六千六百七十七 旬周:六十 朔辰:一百零三又二分之一 日干元:五十二 日限:十一 盈泛:十六 亏总:十七
推经朔术(推算平朔算法) 取上元到所求年份的积年,用月率相乘,除以岁率,得数为积月,除不尽的余数是闰衰。用朔实乘积月,满朔日法就进一,得数为积日,除不尽的余数是朔余。用旬周除去积日,剩下的余数就是日,这就是所求年天正平朔的日辰及朔余。

川公网安备51132102000345号