发布网友 发布时间:2022-04-23 23:01
共1个回答
热心网友 时间:2023-10-13 00:29
干支纪年、纪月、纪日和纪时的简单计算方法 一.干支纪年 [方法一]公元1年的干支是辛酉,只要记住辛酉这一干支,即可简便而又迅速地推算公元前后任何一年的干支。 1.求公元后年干支 干:支取所求年分的个位数 支:以所求年分数目12,取其余数。 然后,以辛酉为起点,按干支顺序依次推出年干和年支(正推)。 逆干支顺序而推为反推 例1:求公元1846年的干支 干:6(1846年的个位数是6) 支:10(1846÷12,得余数为10) 以辛酉为起点(即1),正推,得1846年的干支是丙午 附注:如干.支数为0,则取辛酉的前一个干支,即庚申。 例2:求公元2050年的干支 干:0-庚 支:10(2050÷12余数10)-午 2050年为庚午 2.求公元前年干支 算法与上法一样,只是要反推,即逆干支顺序而推,或用10和12分别减去原得数后再正推。但要注意,此时起点与上法不同,以辛酉为0,反推时以辛酉前一干支即庚申为起点(即1),正推则以辛酉的下一干支即壬为起点。或直取公元前负数即可。 例如:求公元前231年的干支 [方法一]干:1 支:11(231÷12余数11) 11为反推时的干支数,只要直取表内公元前负数即可,即为庚戊。如要正推,则还要用10,12减去此二数。即干为10-1=9,支为12-11=1。结果为庚戊。 [方法二]如不以辛酉作起点,也可以任何一个已知年干支为起点推算。一般可以当年为起点。方法: 以所要求的年数减去已知年数(或当年),得数的个位数即为年干数,得数除以12所得的余数即为年干支数。干支数为正数时正推,为负数时反推,或按[方法一]中方法变为正推。应注意的是已知年干支作0,正推时以已知年干支的后一干支为1,反推时以已知年干支的前一年干支为1。 例如:已知1985年是乙丑年,求1999年的干支。 1999-1985=14 干:4 支:2(14÷12余数为2) 按乙0丙1······的顺序正推得年干为已,按丑0寅1······的顺序正推得年支为卯,故1999年为已卯年。 又如:求1932年的干支 1932-1985=-53 反推干支数:干:10-3=7 支:12-5=7 结果:1932年的干支为壬申。 二.日干支计算法 [方法]以某一个已知日干支作起点(我们去大家易记住的1984年元月1日的干支甲午)。 (1)将所求的年.有.日的数目分别减去1984年1月1日的数目,得年差.月差.日差,并算才闰年数.大月数.二月数(注:所求年大于1984年的这样减)。 (2)(年差×5)+(月差×30)+日差十闰年数+大月数-(二月份数×2)得总日差。 (3)总日差的个位数为日干数,总日差除以12所得余数为日支数。 例如:已知1984年1有1日是甲午,求1999年9月10日的干支。 ①1999.9.10 1984.1.1 ----- 15.8.9 闰年数:4(15年中闰三次,加上1984年本身是闰年) 大月数:5(从1月到9月有5个大月) 二月数:1(从1月到9月只有一个2月) ②15×5+8×30+9+5+4-1×2=331 干:1 支:7(333÷12所得余数为7) 以甲午作起点其干支数作0.0,其后之干支序数依次为1.1.2.2.3.3······由此推得1999年9月10日是乙丑日。 若所求之年小于1984年,计算步骤与原理与上同,但须注意几点。 (1).必须以数大的1984.1.1减去数小的所求年.月.日。 (2).当月差为负数时,后面的大月数和2月数也要为负数。 (3).最后求出的干支数为正数时,用反推法,为负数时用正推法。当然,反推法可以变换为正推法(见“年干支求算法”)。 例如:求1930年8月24日的干支 ①1984.1.1 1930.8.24 ----- 54-7-23 闰年数:13(54年中闰13次,1984年不计入) 大月数:-4(注意要依月差的正负号取) 二月数:-1 ②54×5-7×30-23+13-4+2=48 干:8 (此为反推干支数) 支:0 10-8=2-丙 变正推则为: 0无需变-午 推得1930年8月24日为丙午日 求得干时要注意如下几点: (1)算闰年数及二月份数时,只取二月29日在运算范围内的闰年及2月28日在运算范围内的二月,取大月数也只能取31日在运算范围内的大月。例如:从1984年1月1日到1999年9月10日闰年数有4,但若从1984年3月1日到1999年9月10日则闰年数只有3,因为1984年2月29日(闰)不在运算范围内。从1月1日到9月10日有5个大月,但从1月到8月30日则只有4个大月数,因为8月31日未包括在运算的时是范围内。从1984年1月1日往后算年数时要把1984年这个闰年算在内,但从1984年1月1日往前算闰年数时,则不能把1984年作为一个闰年数算上,因为二月份根本未参加运算。算2月数之理亦然,从1月到2月,二月数算0,只有从1月到2月后的月份,二月数才能算1。 (2)注意历法有100年停闰而400年又不停闰的规律,停闰一次,则闰年数减1,如求19世纪中某一日的干支,在计闰年数时须减1,余类推。 三.干支纪月 每年十二月,与十二地支的配对是固定的,即:正月寅.二月卯.三月辰······冬月子.腊月丑。十天干则要轮流与之相配。因此,首先要求出正月的月干,然后就可依次推出该年中各月的干支。 求月干支先要知道或者算出年干支,然后根据年干支求出正月干支。 年干为已.庚.辛.壬.癸之年的月干支与年干为甲.乙.丙.丁.戊之年的月干支分别相同,即已年与甲年,庚年与乙年的月干支相同,余类推。即表: ┏━━━━━━┓ ┃甲乙 丙丁 戊┃ ┃已庚 辛壬 癸┃ ┃12 34 5 ┃ ┗━━━━━━┛ 将年干的甲.乙.丙.丁.戊分别定为1.2.3.4.5,正月的月干数只要在该年的年干数上加1,然后按其得数向后正推即得月干。 例如:求1985年(乙丑年)的月干支。 乙为2,再加1则为3,然后从乙开始,向后正推三位,至戊,则知乙丑年正月干支为寅,以后各月依次为二月已卯,三月庚辰。 乙.庚.辛.壬.癸各年的月干支分别按甲.乙.丙.丁各年的月干支计算方法求之。 例如:求庚年午年的月干支 庚年的月干支与乙年同,按乙年的月干支算法求之即得(见上例)。故庚午年的月干支为正月戊寅,二月已卯.三月庚辰······。 四.时干支计算法 每日十二时辰,分别以十二地支固定地表示之,即夜晚11~1时为子,1~3时为丑,3~5时为寅,5~7时卯······。时支固定不变,时干则轮流与之相配。因此,求时干支首先要求出该日子时的时干,然后依次推出各时辰的干支。 同求月干支一样,只要求出甲.乙.丙.丁.戊各日的时干支,就可知已.庚.辛.壬.癸更日的时干支,后者亦依前者而求之。见表: ┏━━━━━━┓ ┃甲乙 丙丁 戊┃ ┃已庚 辛壬 癸┃ ┃ 12 34 5 ┃ ┗━━━━━━┛ 方法:将月干数减1,然后按此得数,以日干为始,向后正推,即得该日子时的天干,其余各时则可依次而推得。 如:求丙寅日的时干支 丙数为3,减1则为2,然后以丙为始向后正推到,故丙日的时干依次为:戊子.已丑.庚寅.辛卯······。 又如:求辛未日的时干支 辛日的时干支同丙时,依丙日时干支计算法求之即得(见上例)。 参考资料: http://gb.weather.gov.hk/gts/time/stemsandbranchesc.htm,