一、国历换算为公历
1.换算公式的导出
公历每年365.242 199074075 日 (简化为365.2422日),而回历每年为354.367074375日(简化为354.36707日),所以回历一年只相当354.36707/365.2422=0.970223或0.970224个公历年。又回历元年元旦定在公元622年7月16日,由于当时历法在推算上的误差,致当时的7月16日,按现代的公历应改为7月19日,自公元某年元旦至该年7月19日已达200日.相200/365.2422=0.5476公历年;又因到回历二年元旦才达到0.970224个公历年,故自回历纪年元旦换算为公历的算式即为:
(回历纪年一1)× 0.970224+622.5476年
=所求公历年月日……………………………………………………………………………(1)
或 回历纪年 × 0.970224+621.5774年
=所求公历年月日……………………………………………………………………………(2)
式中621.5774来自622.5476-0.970224。
如所求某一历史事实不在回历元旦时,可将事实经过本年的总日数化为回历年,加人回历纪年总数中即可。
然而上列公历一年的总日数,实际上是一回归年的实测数,因现用公历每年的日数实为365.2425日,它与一回归年的日数只能是基本相符,到公元四千多年后会再出现一日之差。
实际上在明万历十年九月十八日,回历990年9月16日,公元1582年10月4日前(包括4日)的公历称儒略历,儒略历每年365.25日,它每年与一回归年的差值远大于格列高利历即现代的公历,大约历128年就需多闰去一日,至万历十年已经多闰出十日了。因此,对于儒略历时期的回、公两历换算,不能仍采用(l)、(2)两式,而需依儒略历的年实际日数将上列二式略加修正即可,结果如下:
(回历纪年一l)× 0.9702+622.5393
= 所求公历年月日……………………………………………………………………………(3)
回历纪年 × 0.9702+621.5691
= 所求公历年月日…………………………………………………………………………(4)
式中0.9702为354.36707/365.25所得结果,而0.5393则系公历某年元旦至其7月16日的总日数197被365.25日除之所得,622.5393-0.9702= 621.5691。
现将两种算式自回历第52年起,每隔百年所算得的公历年月日列人下表:
国历换算为公历
自表列计算结果得知,历法不同不能用同一算式,否则误差大大。万历十年前即已发现儒略历的春分所在日期与实测结果相差较大,至万历十年已差十日,因此格列高利第十三就决心修改儒略历,改革内容有两点,其一,将公历1582年10月4日之后一日原应为10月5日而改为10月15日,而星期序数不变,即该年10月4日为星期四,10月15日理应为星期一,实为星期五;其二,儒略历每四年有一个闰年,四百年有百闰,格列高利历仍保持儒历四年一闰的传统,但每四百年仅安排九十七个闰年,四百年中逢百年不闰,到第四百年加一个闰年[6]。儒历与格历的岁实分别为:
儒历(365 ×300+366 ×00)÷ 400年=365.25日/年
格历(365 × 303+366×97)÷ 400年=365.2425日/年而《明史·历志》所载的回回宫分历(太阳历),一百二十八年闰三十一日,其岁实:
(128 × 365+31)日÷ 128年= 365.2421875日/年
可见共置闰精度远高于现代的公历。
2.换算中一日误差之订正
《历法丛谈》以回历1387年为例,求算合公历之年月日。
解1:1387 × 0.970224+621.5774=1967.278088年
0.278088年 × 365.2422日=101.569日公历累计日数为101.57日可视为4月11日或4月12日。究竟是哪一日,当依两历在公历4月11日或12日间所具有同一的星期序数以订正。
依回历岁首星期序数计算公式:
[(138-1)×131+164] ÷30=6057,余20
6057÷7=865,余 2
故回历1387年元旦为星期2。(表)
按公历自1583年元旦(星期六)至1967年4月11日,共历:
1967-1583=384年,在这384年中依格列高利历四年一闰,百年不闰,四百年加一闰日的规则共历93个闰日,又1967年元旦后一日起至4月11日又需加 100日,则
(384 × 365+93+100+6)÷ 7=140359+7=2001,余 2余2即星期2,故回历1387年元旦在公历1967年4月11日。
因公历计算星期日数采用数据较多,计算时难免有所遗漏,现引人公历日期与星期推算表阿),供参考。
应用此表查找公元1967年4月11日星期序数步骤如下:
先在本表年份表前二位数字栏目中,查到19二字所在的位置;
再在年份表后二位数字栏目中查到67二字所在位置,自19二字处平行右移,67二字处垂直下移,二者在英文大写字母栏目中相交于字母G处;
再自月份表栏目中查到4月,自4月所在位置平行左移,查到G在4月栏目所在位置;
自日期栏目查到11日所在位置,自此位置平行右移,使与4月份栏目G在星期表相交处知为星期
结果与回历计算所得相同。故知回历 1387年元旦确为公历1967年4月11日,而不是12日。
在换算中所得公历日数常多于31日,甚至常在200—300日或更多,需要将此数化为该年的月日时,可用下列两表。
表3 公历月份及其累计日数
白羊座:3月21日~4月20日
金牛座:4月21日~5月21日
双子座:5月22日~6月21日
巨蟹座:6月22日~7月22日
狮子座:7月23日~8月23日
处女座:8月24日~9月23日
天秤座:9月24日~10月23日
天蝎座:10月24日~11月22日
射手座:11月23日~12月21日
魔羯座:12月22日~1月20日
水瓶座:1月21日~2月19日
双鱼座:2月20日~3月20日
农历日期:
丙寅 虎年 七月初四
阳历日期
1986/08/09
星期六
1986年8月9日 星期六
下面这个地址可以查,有兴趣可以进去看。
1986年8月9日 星期六
狮子座