阴历阳历转换算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
他又说:“已知二十四节气在黄道上的位置是固定的,但各年有平年和闰年之分,就使得回归年天数与实际天数不等,每年在日历上可差一天。这样可以将阴历经过任意整回归年在现在的日历上查到阳历(阳历一年相当阴历的月数为 365.2422/29.530588=12.36827个月)。例如,可先在1995年的日历上查得与(该年)阴历对应的阳历日期,这样就找到了临时落脚点,也就是找到了阴阳互换的关键。例如,可先以阴历四月初一(日)为引数,在1995年日历上查到对应的阳历为4月30日。由于已经计算出经过的月数,将经过的月数的尾数(小数)化为日,加在4月30日上,就得到经过(1995-1070)整年数的阳历日期,也就是起始阴历日期对应的阳历日期,即得到了待查的日期为4月30日加上0.64957×29.530588得到(1070年)5月19.1821840日。这样就得到了所给例子的阴阳历日期换算结果……”。
=204.2- 29.5n
然后用29.5去除204.2得商数6......27.2,6即是n值,余数27即是阴历二十七日
2.公历换算为农历
张家骥称:“《泷冈阡表》中最末一段:‘(宋)熙宁三年,岁次庚戌四月辛酉朔,十有五日乙亥,男修表’。试算为阳历日期”。
3.计算结果的订正
Байду номын сангаас
实际上上列公历换算为农历时常有较大的误差,如熙宁三年四月初一日为公历1070年5月13日,而不是5月19日。通过中国历法所用的于支记日法求算所用两历的干支,对所求结果加以订正。
如,马依泽公生于回历310年3月20日,自回历历元起算共历日数为:
自回历元旦至其3月20日,共历79日。
0.49498 ×29.530588=14.1510,再加34,合49,干支为壬子,所得与史书所载相同。[12]因首朔再过六个月方是龙德二年六月初一日,故
(49+6 ×29.530588)÷60=3,余46月83528,干支序数41为庚戌日,为六月初一日干支,再过二十日为六月二十一日,即马依泽公出生之日,
首朔是指农历每年冬至(平冬至)后第一个朔日,冬至都在农历年前的十一月,故首朔就是所求该年前的十二月初一日的干支。(历象考成后编》以雍正元年(172)冬至起算,其干支系数为32.12253,干支为丙申,而冬至后的 15.12633日为首朔,干支为壬子(33+15.12633)。自此可求算出 922年 7月即农历六月初一日的干支,以确定本文四·3节中所求的干支为该年六月第几日。求算过程如下:
公元1995年六月初一日合公历该年6月28日,代人以上计算程序亦得到上列相同或相近的结果。计算中发现农历因闰月关系,其正月(如 1996年)常在该年公历2月,此时可换用下表的公历月日
表6 公元2100年农历各月初一日与公历的月日
<img src=/wenxian/lunwen/images/00-2-p132.gif>
又7月 1日自该年元旦起算共历182日,干支序数为2,再加17日为7月18日
(45+3+2+17)÷60=1,余7,
结果与回历计算所得相符,即依泽公生于回历310年3月20日,中历庚戌日。
4 求首朔干支[11]
以上计算所得的中历干支应为所求月内的几日,如对所求月首(即月初一日)的干支尚不清楚,则求得的干支不能算出它在月内的日数。
干支序数为7,即庚午日。
求公历922年7月18日的干支,儒略历900年的干支序数为:
900 ×365.25÷60=5478.75
余数为,0.75 ×60=45;
22年的于支序数为,
(22 × 365.25+7)÷ 60=134,余2.5按3计,式中的7,为儒略历元年元旦的干支序数;
0.64957月的由来,
(1995-1070)×12.36827=11440.64957月
已知依泽公生于梁龙德二年(922)六月二十一日,依下表提供的2099年各月初一日的公历月日数,可以算出龙德二年六月二十一日的公历月日数
表5 公元2099年农历各月初一日的公历月日
设:公元年数-1977(或1901)=4Q+R
则:阴历日期=14Q+10.6(R+1)+年内日期序数-29.5n
(注:式中Q、R、n均为自然数,R<4)
例:1994年5月7日的阴历日期为:
1994-1977=17=4×4+1
故:Q=4,R=1 则:5月7日的阴历日期为:
14×4+10.6(1+1)+(31+28+31+31+7)-29.5n
0.44784 ×60=33.01269,干支序数已过33。当为34,丁西日,经与《中西回史日历》对照无误。再求922年首朔干支,
292 59.1O99一0.12254十0.01269=292559
(292559+15.12633)÷ 29.530588=990.4948
自回历元年元旦至309年元旦,共历113个闰年196个平年。又回历历元在公历622年7月16日,已知该日的干支序数为50,癸丑日,减1(因自甲子起算),余49应加入下列算式中,
(309 × 354+113+79+49)÷60=1827.116667
0.116667 ×60=7
阳历日期推算阴历日期的方法:前已述及阴历日期是以月亮的圆缺为计月单位,其以逢朔为初一,以月望为十五(大月为十六日),以月晦为二十九日(大月为三十日)。然而目前记时通常用阳历日期表达,如欲将阳历日期换算成阴历日期可以用以下两种方法:其一是查《新编万年历》,如查1984年6月8日是阴历几日?翻开万年历6月10日是阴历十一,则逆推6月8日是阴历初九。其二可以利用公式推算阴历日期:
(47+20)÷60=1,余7,庚午日结果与回历、公历推算所得相同,即马依泽公出生于回历 310年 3月20日,农历梁龙德二年六月二十一日,公历922年7月18日。
计算中没有采用定朔与定气,可能有数时之差
先以1722减921所得之数称积年,积年乘岁实之积为经此积年所历日数,所历日数减32.12254之差被o后的余数再为o所减,所得之差就是922年冬至的干支(计算中向上推算或上考往古要用60减)。所历总日数减0.12254,再加上922年冬至之余数将所历总日数化为整数后,加上15.12633日所得之和用29.530588除之,除之所得余数,再加上龙德二年冬至干支,得首朔干支,首朔干支再加上 6 × 29.530588后,累减60而得的余数,为龙德二年六月初一日的干支,六月一日与月内干支差即为六月内的日数。计算过程如下:[(1722-921)× 365.2423442-32.12254]÷60=4875.449784
<img src=/wenxian/lunwen/images/00-2-p131.gif>
(2099-922)× 12.36827=1455.45379月
余数为 0.45379月 × 29.530588日=13.4O日
因2099年五月初一日(包括该年闯二月)在公历6月19日,加上计算所得的13日为龙德二年六月初一日的公历月日,即该年7月2日,则该年农历六月二十一日为该年7月22日。