中国历法的计算要点

2025-05-21 01:35:57
推荐回答(1个)
回答1:

为了推算每年的历谱,首先要定一个计算起点,叫做历元。中国古代历法大多数取下列这样的理想时刻为历元:某年十一月甲子日的夜半,它正好是朔和冬至,而且又是月过近地点(即月行速度最快的点)的时刻,等等。由于各种历法的数据不同,所以它们推得的理想时刻也各不相同。不过这样的理想时刻通常离开历法行用的年份都十分遥远。这种历元称为上元(见上元积年)。
设a为一回归年时间,b为一朔望月时间,c为一近点月时间,单位均为“天”。又设y为从上元起到所求年的累计年数。则ay就是从上元起到所求年的冬至的全部时间。因为干支纪日以60天为一周,所以用60去除ay,所得余数r1,就是所求年的冬至时刻到前面一个甲子的夜半的全部时间。这个时间的天数部分叫做大余,不足一天的零数部分叫小余。通常历法都规定,大余“命甲子算外”,即以甲子日为0,乙丑日为1,等等。因此,根据大余的数字,就可以知道所求年冬至日的干支日名。有的历法“命甲子算上”,则应以甲子日为1,乙丑日为2,等等。还有少数历法,如北宋的《纪元历》,不选甲子日,而选己巳日为上元,命己巳算外,则大余就以己巳为0算起,庚午为1,等等。小余就是从夜半起算到发生冬至这瞬间的时间,可以把它按十二时辰制或百刻制等时刻制度(见漏刻),化成时刻。从r1累加一气的时间a/24,就得冬至以后各气的干支日数及时刻。
上述r1的算法,数学上习惯用一个算式来表达:ay≡r1(mod60)。这种算式叫一次同余式。仿此,可以列出其他的一次同余式:ay≡r2(modb),ay≡r3(modc)。r2就是所求年冬至离开十一月平朔的时间间隔。r3则是所求年冬至离月亮上一次过近地点的时间间隔。r1- r2就是十一月平朔离上个甲子日夜半的时间。也和冬至的情况一样,它的整数部分代表甲子日以来的干支日数,零数部分则是从夜半算起到发生平朔的时间。
设这个时间为t0一般历法都给出一份太阳运动表,一份月亮运动表。从太阳运动表,根据所求的十一月平朔在二十四气中的位置(或者,十一月平朔在大雪气后,相距时间为 ;或者,如若,即十一月平朔在大雪气前,在小雪气后,这时,离小雪的时间为),使用内插法可以推算因太阳运动不均匀而引起的定朔改正数Δts;从月亮运动表,根据所求的十一月平朔在一个近点月周期中的位置(即r3),也是用内插法,可以推算因月亮运动不均匀而引起的定朔改正数Δtm。于是,十一月定朔t=t+Δts+Δtm。t>1,定朔在平朔的次一日;t<0,定朔在平朔的前一日;0 清代以后采用第谷体系和开普勒椭圆面积定律。定朔的计算也就改用欧洲的几何学方法。
十二个朔望月为一个民用历年。它和一个回归年有一个差数r,r=α-12b,约为10~11天。不上三年,差数积累就超过了一个月,这时就要在这个历年内增加一个闰月,以免和回归年脱节。汉《太初历》以来规定了无中气之月为闰月的规则,这也等于规定了每个中气都要在固定的月份里,如冬至在十一月,大寒在十二月,雨水在一月,等等。在不同的历法里,月的名称可以不同(见三正),但一定的中气必须在一定的月份里,这条原则在《太初历》以后的各种历法都是一样的。这就使阴历成分和阳历成分结合得更加紧密。一般来说,如r2>(b-r),则规定这年有闰。r/12,则是两个气的时间比一个朔望月长的差数。将这个数累加到r2上,一当这个累加的和数大于b的时候,就是中气超过月份的时候,这时,就把被超过的月份定为闰月。
中国古代有的历法不用前述特殊时刻的上元,而用近距取元,即取某个已知r1、r2、r3值(设为a1、a2、a3)的年的冬至时刻为历元。例如《授时历》就是以历法制定的那年的冬至时刻为历元。它把a1称为气应,a2称为闰应,a3称为转应。这时,一次同余式组改为:
ay+a1≡r1(mod60),
ay+a2≡r2(modb),
ay+a3≡r3(modc)。
以上是就世界各国历法最基本的内容,即按照推算民用历谱,安排历日的问题来说的。但是中国古代历法还有更丰富更广泛的内容。它包括日、月、五星的运动和位置的计算;昏、旦中星和时刻的测定;日、月食的预报等等。就某种程度来说,中国古代的历法就是一种编算天文年历的工作。它包括中国古代天文学的许多重要内容。它的发展是中国天文学史的一条主线。