哎,五代的礼乐文章,我一点儿也搞不懂,没法继承。但是,以后要是有人想了解这方面的东西,也不能让他们找不到资料。所以,我写了《司天职方考》这本书。
司天监负责掌管日月星辰的运行规律。一年有三百六十五天,分四季,二十四节气,七十二候,每天按十天干十二地支来记日子,以此来制定历法。他们仔细观察天象的变化,用来占卜吉凶,推测天意,警示世人,这些占卜的技巧都掌握在官府手里。历法呢,是恒定的规律,用来推算寒暑,预知天象变化,勉励人们从事农耕,历法是全国上下都信服的。占卜有时需要用到,而历法却不能有一点差错。差之毫厘,就会打乱天地人的秩序,错失各种事情的最佳时机,这可是关系到国家安危的大事啊!可是,从尧帝任命羲和制定历法,记载在《书经》里开始,关于闰月和余日的计算方法,只留下了一些大概的原则。而从三代到汉朝这中间一千多年,相关的文献都丢失或废弃了,《六经》里也没有记载,孔子的学生们也没讲过这些。到了后世,这方面的学问就都出自阴阳家的研究,他们把事情看得太重,而学问却流于形式。天地人之间的联系,非常微妙而深奥,竟然让一些只懂技术的专家,摆弄算盘,计算积分,推算几千万年前,非要算出甲子年的朔日夜半冬至,日月五星都汇聚在子位,称之为上元,以此作为历法的开始。其实,从汉朝以后,这种说法才开始详细地出现在世人面前,它的源头就到此为止了。这真的是尧舜和三代时期的方法吗?根本无法考证了。但是,从汉朝以后,历法家的方法虽然历朝历代有所不同,但都脱胎于此。
五代初期,因为沿袭唐朝的惯例,大家还在用《崇玄历》。到了后晋高祖的时候,司天监马重绩才开始制作新的历法。他不再沿用以前从古代上元甲子年冬至七曜的会合来推算,而是以唐朝天宝十四年乙未年作为上元,以正月雨水作为一年的开始。早些时候,唐朝建中年间,有个叫曹士蒍的术士就曾经改变了古代的历法,把显庆五年定为上元,雨水作为岁首,取名为《符天历》。不过,当时人们都觉得这个历法太简陋,只在民间流传,没被官方采用。而马重绩却把这个历法作为参考,把它应用到朝廷,并赐名为《调元历》。然而,这个历法用了五年就发现误差太大,根本无法使用,最后又不得不恢复使用《崇玄历》。周朝广顺年间,国子博士王处讷在家中私下编撰了一部《明玄历》。民间还有个《万分历》,蜀地则有《永昌历》和《正象历》,南唐有《齐政历》。五代时期,能够查到的历法就只有这些了。《调元历》的算法既不符合古法,《明玄历》又只是藏在家中,《万分历》只在民间流传,这些历法的算法都记载得不够详细。至于《永昌历》、《正象历》和《齐政历》,也只在各自的国家使用过,现在都失传了,再也看不到了。
后周世宗登基后,对外征讨叛乱,对内修整法度。端明殿学士王朴精通历法,世宗就下令让他负责修订历法。一年后,王朴上奏说:
臣听说圣人制定历法,是为了了解天人变化规律。人的情感变化,可以用言语来了解;天道的变化,就应该用数字来推算。数字的用途,圣人用它来观察天道。岁月日时,由此而确定;阴阳寒暑,由此而划分;四方的政令,由此而执行。治理国家的人,要立足根本,必须遵循天道的规律;安排政事考核功绩,必须依据年岁;举行祭祀活动,必须遵守历法;农业生产和各种手工业,必须顺应时令;刑罚和战争,必须顺应天象;各种事务,都必须遵循日月运行的规律。所以圣人受命后,一定会重视历法的制定。这样,五种纪年法才能有固定的度量,各种征兆才能有固定的对应,历法才能在天下通行。
从唐朝末年开始,经历了好几个朝代,天下大乱,时间都快一百年了,上天的运行规律都乱套了。皇上您遵循古代的治国之道,敬畏上天,广泛征求百官意见,重新整理失传的典籍。虽然我能力有限,但还是不敢违抗圣旨。所以我研究了宇宙万象制定历法,调整七政(日月五星)来确定历法的根本,用圭表测量日影来推算节气,精确计算日影长度来确定朔日,用九道来推算月亮的运行轨迹,校正星体运行的快慢来推算星象,考究黄道的倾斜程度,辨别天象的升降变化,从而详细推算日月食。
制定历法遵循天地运行的规律,那就是阴阳。阴阳各有其数量,两者结合就能化生万物。阳数有三十六,阴数有二十四。奇偶相生相克,两阳配三阴,一共七十二。阴阳数相加就是七十二,七十二是化生万物的数字,也是五行之数。五倍于七十二,得到三百六十,这是周天之数。超过三百六十就叫气盈,不足三百六十就叫朔虚。至于应对变化和灵活运用,都能做到通达无碍。所以,我们用七十二作为基本的法则,这个法则经常用到。一百是数字的节点,根据法则增减,不会偏离原来的位置,所以叫做通法。用通法乘以基本法则七十二,得到七千二百,这叫做统法。从基本数字开始推算,先用这个方法,统领所有历法。用通法乘以统法,得到七十二万。计算气朔的时候,所有分数都要计算完全,这叫做全率。用通法乘以全率,得到七千二百万,这叫做大率,而元纪由此产生。元纪就是指岁、月、日、时都用甲子纪年;日月五星都运行到子位;在盈亏、先后之间,这就是所谓的七政齐了。
古代在阳城立圭表,因为阳城靠近洛阳。但实际上圭表的位置在洛阳东边偏一点,大概是因为当时觉得那里比较合适吧。开元十二年,皇上派人到全国各地测量日影,南到林邑,北到横野,最后在浚仪的岳台找到了最合适的地方,符合南北弦的标准,而且位于地理中心。大周建国后,定都汴州。在那里竖立圭表和测影仪,测量岳台的日影和漏刻,以此确定平均数。漏刻准确了,那么太阳运行到哪里,以及相应的节气,也就确定了。
太阳和月亮,它们运行的快慢都会变化。太阳运行快,月亮运行慢,月亮就会先到中点,然后是朔(农历初一);月亮运行快,太阳运行慢,太阳就会先到中点,然后是朔。古代测算日月运行的方法,大多是按照匀速运行的规律来计算的;虽然历法中考虑了之前的观测数据,但还是不够精准,前后有出入。《皇极历》的旧方法,太复杂,不好用。后来的历法,都过于简略,错误很多。现在我们根据月亮运行的快慢,结合历法来校正,根据太阳运行的快慢,在实际应用中进行增减。这样算出来的,就是确定的日期了。一天之中,我们把它分成九个时段。每个时段的增减,都有规律可循。这种计算日月运行快慢的方法,可以说是非常精确了。
赤道,是天球的腰带。它的形状是圆的,平的,用来记录星宿度数的标准。黄道,是太阳运行的轨道。它的一半在赤道以内,一半在赤道以外,距离天极24度。当黄道靠近赤道时,它的运行轨迹就比较倾斜;当黄道远离赤道时,它的运行轨迹就比较直。当轨迹倾斜时,太阳运行速度就应该慢一些;当轨迹直的时候,太阳运行速度就应该快一些。所以,在春分和秋分前后,要增加度数;在冬至和夏至前后,要减少度数。九道,是月亮运行的轨道。它的一半在黄道以内,一半在黄道以外,距离天极大约6度。月亮运行轨道与黄道相交,在黄道之外的交点叫做“正交”;在黄道之内的交点叫做“中交”。如果正交在秋分所在的星宿,中交在春分所在的星宿,那么月亮的运行轨道就比黄道更倾斜;如果正交在春分所在的星宿,中交在秋分所在的星宿,那么月亮的运行轨道就比黄道更直;如果正交和中交都在冬至或夏至所在的星宿,那么它的轨迹就比较倾斜。所以,要根据月亮运行轨道与冬至、夏至、春分、秋分的距离,来判断它的倾斜程度,从而确定增减的数值。古代虽然也有九道的理论,但理解得不深,只是照搬前人的说法,并没有实际应用。现在我们把黄道一周分成八个节气,每个节气再分成九道,一共七十二道,这样就能完整地反映日月运行轨迹的倾斜程度了。九道的方法,可以说是非常清晰明了的。
星星的运行速度,离太阳近就快,离太阳远就慢。离太阳最远的时候,速度降到最低,几乎停止不动。古代的历法,把星的运行分成若干段,但划分不准确,快慢没有标准;今天运行的距离还很多,明天就停下来了;停下来之后再运行,就只用匀速的方法计算,仍然用每段运行的距离作为历法计算的依据;这些都不符合实际情况,所以导致计算结果偏差很大。现在我们根据每天运行的距离的积累,来划分不同的运行阶段。这样就能反映出星星运行速度由快到慢,最终停止,然后又逐渐加速的过程。星星运行的快慢,我们就能准确地掌握了。
古人一直认为,当太阳和月亮的黄经相差十五度以下时,就会发生日食或月食。但实际上,日月掩食和星光被遮挡,原理是不同的。现在,我们根据日月直径的大小,计算它们黄经相差的距离,再结合黄道的倾斜度、天体的升降变化以及观测角度,就能准确推算出日食月食的发生情况了。
我研究了以前的历法,发现没有关于食神首尾的详细记载。以前司天监那些占卜祭祀的小术士,也无法解释日食月食的整体规律,只能用一些临时拼凑的方法。这些方法虽然能快速计算,但原理不够严谨,导致出现逆行计算的数值。后来的学者对此也不甚了解,就说历法中有九曜,把它当成历法中的常规模式。我现在把这些不准确的内容都去掉了。我将《步日》、《步月》、《岁星》、《步发敛》四篇合为一本《历经》,再加上《历》十一卷、《草》三卷,以及显德三年编写的《七政细行历》一卷,最终完成了这部《钦天历》。
以前尧帝时期,就非常重视天象观测。陛下您现在也重视历法,考查日月星辰的运行规律,这正是效法尧帝的做法啊!天道深奥难测,我这些微不足道的臣子,也无法完全了解。
世宗皇帝很欣赏我的工作,下令司天监采用这部新历法,并从明年正月初一开始使用。
《显德钦天历》
演纪上元甲子,距今显德三年丙辰,积七千二百六十九万八千四百五十二算外。
《钦天》统法:七千二百。
《钦天》经法:七十二。
《钦天》通法:一百。
《钦天》步日躔术
岁率:二百六十二万九千七百六十,四十。
轨率:二百六十二万九千八百四十四,八十。
朔率:二十一万二千六百二十,二十八。
岁策:三百六十五,一千七百六十,四十。
轨策:三百六十五,一千八百四十四,八十。
岁中:一百八十二,四千四百八十,二十。
轨中:一百八十二,四千五百二十二,四十。
朔策:二十九,三千八百二十,二十八。
气策:一十五,一千五百七十三,三十五。
象策:七,二千七百五十五,七。
周纪:六十。
岁差:八十四,四十。
辰则:六百;八刻二十四分。
好家伙,这都是些啥啊?看着像是古代的天文计算方法,密密麻麻的数字和术语,我得一句一句慢慢捋。
首先是二十八宿的度数:斗宿二十六度,牛宿八度,女宿十二度,虚宿十度,危宿十七度,室宿十六度,壁宿九度。北方七宿加起来九十八度还差一点儿。奎宿十六度,娄宿十二度,胃宿十四度,昴宿十一度,毕宿十七度,觜宿一度,参宿十度。西方七宿一共八十一度。井宿三十三度,鬼宿三度,柳宿十五度,星宿七度,张宿十八度,翼宿十八度,轸宿十七度。南方七宿加起来一百一十一度。角宿十二度,亢宿九度,氐宿十五度,房宿五度,心宿五度,尾宿十八度,箕宿十一度。东方七宿一共七十五度。
接下来这段,我感觉像是计算节气的步骤,有点像公式:先算个“气积”,用什么“岁率”去演算,乘以年份,得到的结果再用什么“统法”整理成天数,减去周期的天数,再用甲子纪年法排一下,就能算出中气发生的日期和时间了。然后呢,不断累加,秒数满了就进位到分,分满了就进位到天,天数满了就减去周期,就能算出各个节气的日期和时间了。
这段是算朔日的:先算个“朔积”,用“朔率”减去,余数就是闰余,用闰余减去“气积”,得到的结果再用“统法”整理成天数,减去周期的天数,用甲子纪年法排一下,就能算出朔日发生的日期和时间了。然后不断累加,就能算出每个月的弦望和朔日了。
这段是算“加时”的:用“岁率”减去闰余,整理成天数,如果小于一年天数,就是盈;如果大于一年天数,就减去一年天数,得到的结果就是缩,也就是一年中朔日加时的情况。然后累加,满了周期就减去,盈缩交替,就能算出四象的入宿情况了。
最后这段是算中气加时日躔赤道宿度的:先算个“气积”,用“轨率”减去,整理成度数,用赤道坐标系排一下,就能算出中气加时日躔赤道宿度和时间了。然后加上一年天数,就能算出夏至所在的星宿了。
总而言之,这段文字描述了一种古代的天文计算方法,涉及到很多专业术语和复杂的计算步骤,我虽然翻译出来了,但具体含义还需要天文专家来解读。
首先,咱们得确定赤道上的星宿位置,具体来说就是冬至和夏至所在的星宿度数。以冬至为例,我们以冬至所在的星宿度数为中心,前后各划分九个区域,每个区域跨度五度。第一个区域的计算系数是8,往后每个区域的系数依次递减1,直到第九个区域系数为0,也就是一度多一点。夏至也一样,只不过是反过来,从0开始,系数依次递增到8。然后,用每个区域的系数乘以该区域的度数,再进行一些换算,就能得到黄道上的星宿位置及其度数了。
接下来,我们还要考虑天正中气(也就是二十四节气)所在的时间和赤道星宿度数。把节气所在的度数和对应的系数相乘,再进行一系列运算,就能得到黄道上的星宿位置和度数。把这些数据加到一年中的对应时间点上,比如夏至,就能得到夏至那天的黄道星宿度数了。
然后,我们来计算中午的时刻。先把冬至和夏至的度数除以二,得到一个中间值,不足的部分用另一个方法计算。用这个值乘以初始日的度数,再进行换算,就能得到中午的时刻和度数。然后,每天都加上下一天的度数,直到满一个周期,就能得到每天中午的星宿位置了。
之后,我们计算每天中午的日长。如果中午的时刻在夏至之后,就用夏至的度数减去一年中的度数,得到一个值;如果在夏至之前,就用这个值加上一年中的度数。然后,每天累加这个值,满一年就重新开始,这样就得到了每天中午的日长变化。
有了每天中午的日长,我们就可以计算每天的日晷长度了。用每天的日长乘以一个系数,再进行换算,就能得到每天日晷的长度。
同样的方法,我们可以计算每天清晨和傍晚的时刻。用每天的日长乘以相应的系数,再进行换算,就能得到每天清晨和傍晚的时刻。
最后,我们计算日出日落的时间。用清晨和傍晚的时刻,进行一些运算,就能得到每天日出日落的时间,以辰和刻为单位。
最后,用日出时间减去日落时间,得到白天的长度,再用一天的总时间减去白天的长度,就能得到夜晚的长度,都能用刻来表示。
首先,把昏影的长度换算成时间,用辰来表示整时,用刻来表示刻钟。 计算完辰和刻后,如果计算结果在子时之后,那就是甲夜的辰和刻。然后,把早晨的昏影长度乘以二,再除以五,得到更用的分数值;再除以五,得到筹用的分数值。用累加法计算甲夜的辰和刻,直到辰数满为一辰,刻数满为一刻,这样就能得到五个夜晚的辰和刻了。
接下来,计算昏影的长度。先把昏影长度减去一半的统法,再乘以轨率,然后除以统法,得到距中分。如果超过统法,就得到度数。把得到的度数加上午时的太阳位置,就是黄昏时星宿的位置;减去午时的太阳位置,就是拂晓时星宿的位置。
然后,根据历法计算。用每日的增减率乘以历法中的分数值,再除以统法,得到一个数值,用来增减内外数(这里指赤道内外定数)。如果不足以减,就反过来加;内外数互相影响,最终得到赤道内外定数。
之后,计算九服(古代中国划分的九个区域)的距离。先把岳台(观测地点)南北的里数乘以360,得到步数;再除以1756,然后根据南北方向分别加上或减去2513,得到该地的戴中数。用赤道内外定数分别减去或加上戴中数,就得到九服的距轨数。
然后,计算晷影长度。用距轨数乘以25,再除以137,得到天用分。再用天用分乘以22,除以6,再减去4000,得到晷法。然后用天用分自乘,再除以晷法,得到地用分。天用分和地用分相加得到晷分,再把晷分除以10得到寸,这样就得到了该地的正午晷影长度。
最后,计算漏刻。先把经法和轨中值相加再除以二,自乘,再除以该地的戴中数,然后乘以263,再除以经法,得到漏法。把轨中值放在上面,赤道内外数放在下面,用下面的数减去上面的数,再用所得的差乘以漏法,得到漏分。然后,赤道内数减去,赤道外数加上1620,得到该地的晨分;减去统法,得到昏分。把晨昏分代入岳台的计算方法,就能得到该地的日出日落时间、五个夜晚的辰刻以及昏晓时星宿的位置了。
《钦天》步月离术
离率:一十九万八千三百九十三,九。
交率:一十九万五千九百二十七,九十七,五十六。
离策:二十七,三千九百九十三,九。
交策:二十七,一千五百二十七,九十七,五十六。
望策:一十四,五千五百一十,一十四。
交中:一十三,四千三百六十三,九十八,七十八。
离朔:一,七千二十七,一十九。
首先,咱们来看几个数字:交朔是2292、30、44;中准是1736;中限是4780;平离是963;程节是800。这些数字都是干嘛用的呢,后面会慢慢解释。
接下来,计算天数。把朔积(这个朔积是什么后面会说)除以离率(离率是什么,后面也解释),余数除以统法(统法也是个专业术语),得到的商就是天数,也就是天体正常朔日加时后进入历法的天数。然后,累加象策(象策是什么呢?继续往下看),再减去盈离策(盈离策是什么,不用急,慢慢来),就能算出弦望和下个朔日进入历法的天数。
怎么确定具体的日期呢?先用日躔、月离、朓朒的定数(这些都是天文术语,表示不同的天文参数),朓减朒加,再除以程节,得到限数。然后,用余数乘以对应的损益率,再除以程节,最后用这个结果来调整限数中的朓朒定数。
然后,用日躔、月离、朓朒的定数,朓减朒加朔弦望的常分,就能算出具体的日期。如果算出来的朔日加时后的日期已经过了子夜,那就往后推一天;但是,如果正好赶上交见初(交见初也是个天文现象),那就不用推迟。如果弦望加时后的日期还没到日出,那就往前推一天,即使日出后有交见初也是一样。元旦如果赶上交见,那就根据实际情况调整。如果算出来的朔日和下一个朔日的天干地支相同,那就是大朔;不同,那就是小朔;如果没有中气,那就是闰月。
继续计算!把日躔的数值代入历法,用日躔、月离、朓朒的定数,朓减朒加,算出朔日加时后进入历法的数值。再用历分乘以日损益率,除以统法,调整盈缩数,得到最终的定数。然后,用定朔历分除以统法,再用定数来调整,最后加上冬夏至的宿度,就得到最终的结果了。
最后一步,计算入交日期。先把朔积除以交率,余数除以统法,得到天数,也就是天体正常朔日进入交点的日期。累加望策,减去盈交策,就能算出望日和下个朔日进入交点的日期。然后,用日躔、朓朒的定数,朓减朒加,算出进入交点的常日。再用月离、朓朒的定数乘以经法,除以平离,朓减朒加常分,就能算出进入交点的具体日期。
最后,用统法乘以朔交定日,再乘以254,除以19,最后再除以统法,就能算出入交度。用这个入交度减去朔日加时日度,就能得到朔日之前的月离正交黄道宿度。 这段文字描述了一种复杂的历法计算方法,里面充满了专业术语,理解起来需要一定的专业知识。
月亮离开黄道,出入黄道六度范围内。月亮的运行变化,是从八个节气开始的,它的运行轨迹倾斜程度也不一样。所以月亮有九条运行轨道。八个节气,每个节气都有九个限度。如果从正交点开始算,八个节气后的第一个限度的星宿,就是月亮在这个节气运行的第一条轨道。从第二个限度的星宿开始,就是月亮在这个节气运行的第二条轨道,以此类推,以所起始的限度为正交后的第一个限度。一开始的速率是八,每个限度减少一,直到第九个限度,最后的速率是零。再接下来的九个限度,一开始的速率是零,每个限度增加一,最后的速率是八,这就是半交点的星宿。之后也是九个限度,一开始的速率是八,每个限度减少一,最后的速率是零。再接下来的九个限度,一开始的速率是零,每个限度增加一,最后的速率是八,这时月亮又和黄道相交,这叫做中交点。从中交点到正交点,也是同样的规律。
每个限度都要记录下月亮进入的度数,用限度的速率乘以度数,得到泛差。正交点和中交点前后各九个限度,都要用它们距离二至点星宿的限度数乘以泛差。半交点前后各九个限度,都要用它们距离二分点星宿的限度数乘以泛差;这些计算都按照经书上的方法进行,最后得到黄道差。如果是在冬至点星宿之后,正交点前后各九个限度是减,中交点前后各九个限度是加。如果是在夏至点星宿之后,正交点前后各九个限度是加,中交点前后各九个限度是减。总的来说,月亮在正交点之后离开黄道,在中交点之后进入黄道。半交点前后各九个限度,如果是在春分点星宿之后,月亮离开黄道,如果是在秋分点星宿之后,月亮进入黄道:这些情况都把差值加上;如果是在春分点星宿之后,月亮进入黄道,如果是在秋分点星宿之后,月亮离开黄道:这些情况都把差值减去。把四个大约的泛差加起来,再减去黄道差,就得到赤道差。正交点和中交点前后各九个限度,都把差值加上。半交点前后各九个限度,都把差值减去。用黄道差和赤道差加减黄道,就可以得到九条轨道的星宿位置;然后根据少、太、半这三种情况来划分。八个节气各有九条轨道,总共七十二条轨道构成一个周期。
确定月亮正交点在黄道上的星宿度数;用每个限度的速率乘以度数,也乘以它的分数,按照经书上的方法进行约分,得到泛差。然后用它来求黄道差和赤道差,用它们加减,就可以得到月亮正交点在九条轨道上的星宿度数。
确定月亮正交点在九条轨道上的星宿度数,加上交点度数,命名为九条轨道上的星宿位置,这就是朔日加上时间后的月亮在九条轨道上的星宿度数。
确定朔望日加上时间后的日度差,用它加上轨道上的度数,得到加上时间后的象积。用它加上朔日月亮在九条轨道上的度数,命名为它所在的轨道星宿位置,这就是我们要求的结果。从望日推算朔日,也是同样的方法。
第一步,先算出月亮的运行位置。把朔望月(农历初一十五)的日期填进去,加上半天的时间,再减去固定的数值。然后根据月亮运行的快慢,调整这个数值,就能算出最终结果了。
接下来,算晨昏线的位置。先算出当天太阳的晨昏时刻,用固定的数值减去它,得到一个数值,如果不够减就反过来减,得到另一个数值。用这两个数值分别乘以太阳每天运行的距离,再进行一些运算,就能算出晨昏线的位置,以及月亮在晨昏线上的位置。
然后,计算月亮的运行积累值。用之前算出的晨昏线位置,进行加减运算,就能得到最终结果。
接下来,计算月亮与黄道的距离。先计算月亮距离黄道的距离,然后用这个距离减去晨昏线积累值,得到一个加或减的数值。用月亮运行的天数除以这个数值,再用这个结果加减每天月亮运行的距离,就能得到最终的距离。最后,把这个距离累加到月亮在晨昏线上的位置,就能确定月亮在九曜宿次中的位置。
接下来,确定交点(黄道和白道的交点)的日期。如果月亮在交点以下,它就运行在黄道之上;如果在交点以上,它就运行在黄道之下。用固定的数值减去980,再乘以一个数值,最后除以556,就能算出月亮距离黄道的距离。月亮在黄道之上还是之下,就取决于它在交点的位置。
接下来,计算交点前后月亮的运行位置。如果月亮在交点的一半以下,就是交点之后;如果在交点的一半以上,就用它减去交点的一半,得到交点之前的位置。用这些数值,就能算出月亮距离交点的距离。如果在朔日(农历初一),月亮距离交点的距离小于特定的数值,就可能发生日食;如果在望日(农历十五),月亮距离交点的距离小于特定的数值,就可能发生月食。
接下来,计算日食和月食发生的时间。先算出朔日月亮距离正午位置的距离。如果这个距离超过半天,就用半天减去它;如果小于半天,就用它减去半天。然后用11乘以这个距离,再进行一些运算,就能得到日食发生的时间。对于月食,则需要用当天太阳的晨昏时刻与1620相减,再进行一系列运算,才能得到月食发生的时间。
最后,计算日食的黄道出入差。用一个固定的数值乘以当天太阳赤道内外数值,再除以2513,就能得到黄道出入食差。然后用月亮距离正午位置的距离减去半天的时间,再乘以黄道出入食差,最后除以半天的时间,就能得到日食的常准。赤道内要减去这个常准,赤道外要加上这个常准。
这段文字描述的是古代计算日食和月食的方法,用现代汉语口语翻译如下:
先说日食,咱们得用一个数字,3287。如果日食发生在冬至之后,就把这个日期的数值减去3287;如果在冬至之前,就加上3287。 再来说另一个数字,6574。如果日食发生在春分之后,就减去9861;如果在春分之前,就加上9861。 算完之后,还要根据情况,在冬至前后加减2772,在春分前后也加减2772,这就能算出黄道和赤道的交角对日食的影响了。然后,再用这个结果乘以日食发生时太阳距离正午的度数,再除以半天的时间,最后加到标准值里,就得到了最终的日食时刻。
用这个最终的时刻加上一个中间值,就得到阴历日食的准确时刻;减去这个中间值,就得到阳历日食的准确时刻。如果减出来的结果是负数,那就把负数当成正数来用。 接下来,看看阴历日食发生时,月亮距离交点(太阳和月亮运行轨道交叉点)的度数。如果这个度数在最终时刻之后,但在阴历日食的准确时刻之前,那就是阴历日食;这时,用月亮距离交点的度数减去阴历日食的准确时刻,就得到日食持续时间。如果最终时刻在阴历日食准确时刻之前,虽然是阴历,但算作阳历日食;这时,加上阳历日食的准确时刻,就得到日食持续时间。如果前面算出负数了,那就减去这个负数,得到日食持续时间;如果减不了,那就说明没日食。 对于阳历日食,如果月亮距离交点的度数在阳历日食准确时刻之前,就说明日食开始了;这时,用月亮距离交点的度数减去阳历日食准确时刻,得到日食持续时间。 最后,把算出来的日食持续时间都除以478,得到日食的大分和小分。大分以十为单位,小分则根据大小判断日食的强弱。
接下来是月食的计算。看看月亮距离交点的度数,如果小于标准值,那就是月食;如果大于标准值,就减去月食的持续时间,得到最终的月食持续时间。然后,用这个持续时间除以526,得到月食的大分和小分,大分以十为单位,小分则根据大小判断月食的强弱。
最后,咱们再来算一个叫“泛用分”的东西。如果日食持续时间超过1912,就减去4780,然后把剩下的数字平方,再除以63272,最后减去647,就得到泛用分。如果日食持续时间小于956,就减去1912,然后用标准方法计算,最后除以735,再减去517,得到泛用分。如果日食持续时间在956到1912之间,就用日食持续时间平方,除以2362,再减去387,得到泛用分。
总而言之,古代计算日食月食的方法相当复杂,需要进行一系列的加减乘除运算才能得到结果。
首先,咱们得算个东西,叫“泛用分”。 计算方法是这样的:如果距离食分(就是日食或月食遮挡的程度)超过2114,就减去5260;剩下的数自己乘以自己,再除以69169,最后减去711,就得到泛用分了。如果距离食分超过152,就减去2140;剩下的数除以7,再减去567,也是泛用分。如果距离食分小于152,就用距离食分减去它本身(也就是0),剩下的数自己乘以自己,再除以2654,最后减去417,得到泛用分。
接下来,算“定用分”。把刚才算出来的各个泛用分,分别乘以平离乘(这应该是个已知的数值,这里没解释),再除以日离程,就得到定用分了。用朔望定分(这个也是已知数)减去定用分,得到亏初;再加上定用分,得到复末。然后加上时常分,按照食甚的计算方法推算,就能得到亏初和复末的定分了。最后,把初、甚、末的定分分别除以辰则(应该是时间单位),得到辰;再除以经法(应该是时间单位),得到刻。这样,我们就得到了初、甚、末的辰刻了。
日食是从西边开始亏蚀的,月食是从东边开始亏蚀的。如果食分比较小,月亮运行在阳道(这指的是月亮运行的轨道),那么日食偏南,月食偏北;如果月亮运行在阴道,那么日食偏北,月食偏南。这是个常数,也就是固定的规律。立春后立夏前,如果食分比较大,日食偏南,月食偏北;立秋后立冬前,如果食分比较大,日食偏北,月食偏南。这是因为黄道的倾斜角度造成的。如果在阳道交点之前,或者阴道交点之后,食分比较大,日食偏南,月食偏北;反之,日食偏北,月食偏南。这是因为九道的倾斜角度造成的。黄道的偏差比常数要小,九道的偏差比黄道还要小四分之一。这些都是以正午为基准说的。如果在上午或下午,情况就会相反,一边偏南,一边偏北。根据食分的大小和时间的变化,就能确定初、甚、末的方位了。
最后,咱们还要算带食出入。看看日出日落的时间,如果在亏初定分之上,复末定分之下,那就是带食出入。如果食甚在日出日落时间之下,就用日出日落时间减去复末定分,得到带食差;如果食甚在日出日落时间之上,就用亏初定分减去日出日落时间,得到带食差。然后,把带食差乘以距离食分,再除以定用分,最后用478(日食)或526(月食)除,得到带食的大分和小分。
首先,把每个时间段分成早晚两部分,分别算出早晚的份数。早上分的份数不够,就用晚上分的份数来补;晚上分的份数太多了,就减去一部分。把所有这些份数加起来,就是一天的总份数。剩下的,用筹码计算,算出筹码的总数。
《钦天》步五星术里,周率是2871976.6,变率是242215.66,历率是2629761.78,周策是3986376.6,历中是1824480.89。
下面是一些数据,具体指的是什么,我就不太清楚了:
变段 变日 变度 变历
晨见 一十七 三(三十七) 二(二十四)
顺疾 九十 十六(六十三) 十一(一十三)
顺迟 二十五 二(九) 一(二十九)
前留 二十六(三十二)
退迟 十四 一(一十二) 空(二十八)
退疾 二十七 四(三十八) 一(三十七)
退疾 二十七 四(三十八) 一(三十七)
退迟 十四 一(一十二) 空(二十八)
后留 二十六(三十二)
顺迟 二十五 二(九) 一(二十九)
顺疾 九十 十六(六十三) 十一(一十三)
夕伏 一十七 三(三十七) 二(二十四)
这部分数据看起来像是某种天文计算的结果,括号里的数字可能是备选值或者修正值。
接下来,又是一组新的数据:
周率:5615422.11
变率:2985661.71
历率:2629760.0
周策:7796622.11
历中:1824480.0
变段 变日 变度 变历
晨见 七十三 五十三(六十八) 五十(五十八)
顺疾 七十三 五十一(一) 四十八(三)
次疾 七十一 四十六(六十九) 四十四(一十七)
次迟 七十一 四十五(三十三) 四十二(五十八)
顺迟 六十二 十九(二十九) 十八(二十)
前留 八(六十九)
这些数字和之前的类似,也可能是天文计算中的某些参数,括号里的数字同样可能代表备选值或修正值。 整体来看,这段文字描述了一种天文计算方法,但由于缺乏上下文和专业知识,很难完全理解其具体含义。 这些数字和术语,可能需要结合当时的历法和天文知识才能解读。
第一天,我退迟了十一天,空了四十四。第二天,我退疾了二十一天,七天是四十六,两天是四十。第三天也是一样,退疾二十一天,七天四十六,两天四十。第四天,我又退迟了十一天,空了四十四。之后还留下了八天(一共六十九天)。
接下来,顺次迟了六十二天,十九天是二十九,十八天是二十。然后是次迟,七十一,四十五天是三十三天,四十二天是五十八天。接着是次疾,七十一,四十六天是六十九天,四十四天是一十七天。顺疾七十三天,五十一是第一天,四十八是第三天。最后一天夕伏,七十三天,五十三是六十八天,五十是五十八天。
总的来说,周率是二百七十二万二千一百七十六,九十;变率是九万二千四百一十六,五十;历率是二百六十二万九千七百五十九,八十;周策是三百七十八,五右七十六,九十;历中是一百八十二,四千四百七十九,九十。 变段、变日、变度、变历这些数据我都记录下来了。
第二天早上,我看到了十九天,两天是七天,一天是十四天。然后顺疾六十五天,六天是三十八天,三天是五十一天。顺次迟十九天,空了六十三天,空了三十五天。前面还留了三十七天(三天)。
之后退迟十六天,空了四十三天,空了十四天。接着退疾三十三天,两天是三十五天,空了六十天。第三天也是一样,退疾三十三天,两天是三十五天,空了六十天。第四天,我又退迟十六天,空了四十三天,空了十四天。之后还留下了三十七天(三天)。
接下来,顺次迟十九天,空了六十三天,空了三十五天。然后顺疾六十五天,六天是三十八天,三天是五十一天。最后一天夕伏,十九天,两天是七天,一天是十四天。
总的来说,这次周率是四百二十万四千一百四十三,九十六;变率是四百二十万四千一百四十三,九十六;历率是二百六十二万九千七百五十,五十六;周策是五百八十三,六千五百四十三,九十六;历中是一百八十二,四千四百七十五,二十八。变段、变日、变度、变历这些数据也都记录下来了。
傍晚看到的情况是:四十二、五十三(四十)、五十一(一十七)。
接下来,顺势而行的疾速变化是:九十六、一百二十一(五十七)、一百一十六(三十九)。
然后是中等速度的疾速变化:七十三、八十(三十七)、七十七(二)。
中等速度的迟缓变化是:三十三、三十四(一)、三十二(四十)。
顺势而行的迟缓变化是:二十四、一十一(六十一)、一十一(二十四)。
前面留下的数值是:六(六十九)。
逆势而行的迟缓变化是:四、一(二十二)、空(三十一)。
逆势而行的疾速变化是:六、三(六十五)、一(二十二)。
傍晚观察到的静止状态是:七、四(四十)、一(三十七)。
早晨观察到的情况是:七、四(四十)、一(三十七)。
逆势而行的疾速变化是:六、三(六十五)、一(二十二)。
逆势而行的迟缓变化是:四、一(二十二)、空(三十一)。
后面留下的数值是:六(六十九)。
顺势而行的迟缓变化是:二十四、一十一(六十一)、一十一(二十四)。
中等速度的迟缓变化是:三十三、三十四(一)、三十二(四十)。
中等速度的疾速变化是:七十三、八十(三十七)、七十七(二)。
顺势而行的疾速变化是:九十六、一百二十一(五十七)、一百一十六(三十九)。
早晨观察到的静止状态是:四十二、五十三(四十)、五十一(一十七)。
周率:八十三万四千三百三十五,五十二。
变率:八十三万四千三百三十五,五十二。
历率:二百六十二万九千七百六十,四十四。
周策:一百一十五,六千三百三十五,五十二。
历中:一百八十二,四千四百八十,二十二。
接下来是关于变段、变日、变度、变历的记录:
傍晚观察到的数值是:一十七、三十四(一)、二十九(五十四)。
顺势而行的疾速变化是:一十一、十八(二十四)、十六(四)。
顺势而行的迟缓变化是:十六、一十一(四十三)、十(十)。
前面留下的数值是:二(六十八)。
傍晚观察到的静止状态是:一十一、六、二。
早晨观察到的情况是:一十一、六、二。
后面留下的数值是:二(六十八)。
顺势而行的迟缓变化是:十六、一十一(四十三)、十(十)。
顺势而行的疾速变化是:一十一、十八(二十四)、十六(四)。
早晨观察到的静止状态是:一十七、三十四(一)、二十九(五十四)。
首先,咱们把气积除以周率,得到周数;余数就是天正中气积在之前的合数。用这个余数减去岁率,得到前年的天正中气后合数。如果减不掉,那就加上岁率再减,得到前前年的天正中气后合数。然后用统法约分,算出日子和度数,这就是我们要求的平合中日和中星。接下来,把中日逐段累加,就得到逐段的中日;把中星逐段累加或累减,就得到逐段的中星。金星和水星傍晚隐没早晨出现,都是要减的。
然后,我们算变率。用周数乘以变率,再除以历率,余数用统法约分得到度数。这个度数在历法中间以下的,就是先;在历法中间以上的,要减去历法中间的值,就是后。这就是我们要求的平合入历。把逐段的变历累加,就能得到逐段的入历。
接下来,我们用入历分乘以它的度损益率,再用经法约分,然后用这个结果来增减前后数,就得到最终结果了。
然后,我们把中日和中星分别用前后定数,先加后减,保留前段的先后数。太白星(金星)顺行隐没出现,以及它之前顺行快慢变化,辰星(水星)顺行隐没出现以及它之前快慢变化,都是先减后加,这样就得到了各段的常日定星。然后,把定星加上那一年天正中气日所对应的黄道宿度,就能得到逐段末日的加时宿度。
然后,我们算常日。如果常日在一年中间以下,就是盈;在一年中间以上,就减去一年中间的值,余数就是缩。这就是常日入盈缩历。然后,我们用历分乘以它的日损益率,经法约分,用这个结果增减盈缩数,就能得到最终结果。
接下来,我们用常日加上盈缩定数,盈就减,缩就加,得到定日。然后把定日加上那一年天正中气日,就能得到逐段末日的加时日辰。
然后,我们用气策去除定日,从冬至开始算,就能得到所入气日数。
最后,用当前段的定日减去前段的定日,得到日率;用当前段的定星减去前段的定星,得到度率。然后,用经法乘以度率,再除以日率,就得到平行分。
这段文字描述了一种古代的天文计算方法,看起来很复杂,咱们一句一句地捋清楚。
第一段说的是怎么计算“行分”。 “近伏段与伏段平行分,合而半之,为其段近伏行分。” 意思是说,把近伏段和伏段的平行分加起来再除以二,得到近伏行分。“以平行分减之,余减平行分,为其段远伏行分。” 就是用平行分减去近伏行分,再减去平行分,得到远伏行分。“近留段近留行分空。” 近留段的近留行分是空的,没有值。“倍平行分为其段远留行分。” 远留行分的数值是平行分的两倍。 后面又讲了其他情况下的计算方法,总之就是各种加减乘除,根据不同情况用不同的公式计算行分。 这部分计算方法很繁琐,关键在于理解各种术语的含义,才能搞懂计算过程。
第二段介绍的是“置经法”。“置经法,以前段末日加时分减之:余乘前段末日行分,经法而一;用顺加、退减前段末日加时宿度,为其段初行昏后夜半宿度也。” 这一段说的是用前段末日的加时分减去某个值,然后用结果乘以前段末日行分,再进行某种“经法”运算(具体经法是什么,需要更多上下文解释),最后通过加减运算得到初行昏后夜半宿度。 这部分涉及到天文历法中的专业术语,理解起来有一定难度。
第三段讲的是如何计算“日差”和“每日行分”。 “初末行分相减,为差率。累计其段初行昏后夜半距后段初行昏后夜半日数除之,为日差。” 意思是说,用初末行分相减得到差率,再用这段时间的天数去除差率,得到日差。“半日差,以减多、加少为其段初末定行分。” 再把日差除以二,根据大小调整初末定行分。“置初定行分,用日差末多则累加、末少则累减,为每日行分。” 最后根据日差,累加或累减得到每日行分,并计算每日昏后夜半星所至宿度。
第四段描述了最终结果的计算方法。“自初日累计距所求日数,以乘其段日差;末多用加、末少用减初日行分,为其日行分。” 意思是说,用所求日数乘以日差,再根据情况加减初日行分得到日行分。“合初日而半之,以所累计日乘之,用顺加、退减其段初行昏后夜半宿次,即所求也。” 最后把日行分和初日行分加起来除以二,再乘以累计日数,并进行加减运算,得到最终结果。 这整个过程,环环相扣,步骤繁多。
接下来是《钦天》步发敛术中的一些数据:
候策:五,五百二十四,四十五。
卦策:六,六百二十九,三十四。
外策:三,三百一十四,六十七。
维策:一十二,一千二百五十八,六十八。
气盈:一千五百七十三,三十五。
朔虚:三千三百九十九,七十二。
最后是二十四节气歌:
冬至 十一月月中 蚯蚓结 麋角解 水泉动
小寒 十二月节 雁北乡 鹊始巢 雉始雊
大寒 十二月中 鸡始乳 鸷鸟厉疾 水泽腹坚
立春 正月节 东风解冻 蛰虫始振 鱼上冰
雨水节气,在正月中,水獭开始祭祀鱼类,鸿雁飞来,草木开始萌动,万物复苏的景象。
惊蛰节气,在二月,桃花开始盛开,黄鹂鸣叫,老鹰变成布谷鸟,春天的气息越来越浓厚了。
春分节气,在二月中旬,燕子飞来,雷声开始响起,闪电也出现了,春天的景象更加明朗。清明节气,在三月,梧桐树开始开花,田鼠变成一种叫鴽的鸟,彩虹也开始出现了,春光明媚。
谷雨节气,在三月中旬,浮萍开始生长,斑鸠梳理羽毛,戴胜鸟飞落在桑树上,万物欣欣向荣。立夏节气,在四月,蝼蛄鸣叫,蚯蚓出土,王瓜开始生长,夏天就要来了。
小满节气,在四月中旬,苦菜茂盛,杂草枯萎,小暑节气也快到了,夏天的脚步越来越近。芒种节气,在五月,螳螂出现,伯劳鸟开始鸣叫,反舌鸟却停止了鸣叫,季节的变化影响着各种生物。
夏至节气,在五月中旬,鹿角脱落,蝉开始鸣叫,半夏草开始生长,盛夏的景象已经到来。小暑节气,在六月,温暖的风吹来,蟋蟀住在墙壁上,老鹰开始学习捕猎技巧。
大暑节气,在六月中旬,腐烂的草变成萤火虫,土地湿润闷热,大雨经常下个不停,酷暑难耐。立秋节气,在七月,凉爽的风吹来,白露降落,寒蝉鸣叫,炎热消退,秋天来了。
处暑节气,在七月中旬,老鹰祭祀鸟类,天地开始肃杀,庄稼也成熟了,丰收在望。白露节气,在八月,鸿雁飞来,燕子飞回南方,各种鸟类开始储备食物过冬。
秋分节气,在八月中旬,雷声停止,冬眠的昆虫躲进洞穴,水开始干涸,秋天逐渐深入。寒露节气,在九月,鸿雁飞来做客,麻雀潜入水中变成蛤蟆,菊花开了黄花,秋意更浓。
霜降节气,在九月中旬,豺狼祭祀兽类,草木枯黄飘落,冬眠的昆虫都躲藏起来,冬天就要来了。立冬节气,在十月,水开始结冰,地开始冻结,野鸡潜入水中变成蜃,冬天正式开始。
小雪节气,在十月中旬,彩虹消失不见,天气上升,地气下降,万物闭塞,进入隆冬。大雪节气,在十一月,鹖鸟停止鸣叫,老虎开始交配,荔枝的嫩芽长出来。
冬至节气:坎卦初六,中孚卦,复卦,屯卦(内)。小寒节气:坎卦九二,屯卦(外),谦卦,睽卦。大寒节气:坎卦六三,升卦,临卦,小过卦(内)。
立春节气:坎卦六四,小过卦(外),蒙卦,益卦。雨水节气:坎卦九五,渐卦,泰卦,需卦(内)。惊蛰节气:坎卦上六,需卦(外),随卦,晋卦。
春分那天,《震卦》初九,公位是《解卦》,辟位是《大壮卦》,侯位是《豫卦》(内卦)。
清明节,《震卦》六二,侯位是《豫卦》(外卦),大夫位是《讼卦》,卿位是《蛊卦》。
谷雨时节,《震卦》六三,公位是《革卦》,辟位是《夬卦》,侯位是《旅卦》(内卦)。
立夏,《震卦》九四,侯位是《旅卦》(外卦),大夫位是《师卦》,卿位是《比卦》。
小满,《震卦》六五,公位是《小畜卦》,辟位是《乾卦》,侯位是《大有卦》(内卦)。
芒种,《震卦》上六,侯位是《大有卦》(外卦),大夫位是《家人卦》,卿位是《井卦》。
夏至,《离卦》初九,公位是《咸卦》,辟位是《姤卦》,侯位是《鼎卦》(内卦)。
小暑,《离卦》六二,侯位是《鼎卦》(外卦),大夫位是《丰卦》,卿位是《涣卦》。
大暑,《离卦》九三,公位是《履卦》,辟位是《遁卦》,侯位是《恒卦》(内卦)。
立秋,《离卦》九四,侯位是《恒卦》(外卦),大夫位是《节卦》,卿位是《同人卦》。
处暑,《离卦》六五,公位是《损卦》,辟位是《否卦》,侯位是《巽卦》(内卦)。
白露,《离卦》上九,侯位是《巽卦》(外卦),大夫位是《萃卦》,卿位是《大畜卦》。
秋分,《兑卦》初九,公位是《贲卦》,辟位是《观卦》,侯位是《归妹卦》(内卦)。
寒露,《兑卦》九二,侯位是《归妹卦》(外卦),大夫位是《无妄卦》,卿位是《明夷卦》。
霜降,《兑卦》六三,公位是《困卦》,辟位是《剥卦》,侯位是《艮卦》(内卦)。
立冬,《兑卦》九四,侯位是《艮卦》(外卦),大夫位是《既济卦》,卿位是《噬嗑卦》。
小雪,《兑卦》九五,公位是《大过卦》,辟位是《坤卦》,侯位是《未济卦》(内卦)。
大雪,《兑卦》上六,侯位是《未济卦》(外卦),大夫位是《蹇卦》,卿位是《颐卦》。
中间那个节气,就是初候。 用卦策累加,就是后面的候。 中气对应的是公卦,用卦策累加,就是后面的卦。侯卦的话,用外策加,就是外卦。
立春、立夏、立秋、立冬这四个节气,代表着木、火、金、水开始当家做主。 而四季的节气,则是土开始当家做主。
话说这计算日数的方法,如果超过五千六百二十六秒六十五,就要用减统法,看看有没有剩余。用通气策乘以剩余秒数,气数满了算一天,这就是所谓的“满统法”,把算出来的天数加到原来的日期上,就是最终的日数了。
如果是在朔日(农历初一)之前,也就是朔虚(朔日之前的日期),那就得用灭分法。用朔率乘以朔虚的天数,朔虚满了算一天,这就是“盈统法”,把算出来的天数加到朔日上,就是最终的日数了。
上面这些都是我从朴先生写的《钦天历经》里摘录的四篇文章。可惜的是,《旧史》里少了《步发敛》一篇,现在只剩下三篇,内容简略不完整,不足以作为完整的历法依据。朴先生的历法在世上流传得不多,我曾经问过著作佐郎刘羲候先生,他帮我找到了朴先生历法的原本,这才让我对朴先生的历法有了比较全面的了解。刘先生是个好学又博闻强记的人,尤其精通天文历法,他曾经对我说:“以前那些制定历法的人,方法都不一样,而且误差很大。直到唐朝一行大师,才用天地间的中数制定了《大衍历》,这才是最精确的。后世精通历法的人,都沿用他的方法,只是在一些细节的数字上略有调整。而朴先生也能自成一家。朴先生的历法,总的来说是根据太阳运行的快慢来调整盈亏两历,把月亮运行的快慢分成二百四十八个阶段,用来推算日月的盈亏变化,从而精确地推算出朔望日。他校正了赤道九限,修改了相关的数值,来推算黄道,使太阳运行有固定的度数;他把黄道分成八个节气,区分内外,来推算九道,使月亮运行像循环一样,日月运行协调一致。他观察天象的升降,察看轨道倾斜的程度,来推算日食的误差,使交会更加精确;他测量了岳台的日影长度,来确定二至日的昼夜长短,使计时更准确;他推算星宿的运行轨迹,使行星运行的快慢有规律可循,使五星运行协调一致。但是,他的方法不够简洁明了,反而过于繁琐。不过,他历法中的长处,即使是圣人出现也无法推翻。”刘先生的话大概就是这样,大家可以参考一下。