当前位置:   article > 正文

农历24节气算法

python24节气算法
许剑伟

[摘要] 古老而又现代的中国农历,是一种天文学性质的阴阳历。本文采用VSOP87星历算法并结合运动学方法以及牛顿求根法得到24节气的精确时间,揭开农历计算的神秘面纱。
[关键字] 农历算法、星历、节气

[正文] 计算中国农历,首先要计算出二十四节气时刻。在计算机问世之前,二十四节气的许算是非常复杂的。随着计算机及互联网的普及,美国航空航天局、法国巴黎天文台各自在网络上发布了精密星历表的计算方法,这使得民间计算农历成为可能。本文以法国巴黎天文台的VSOP87算法为基础,给出中国农历的二十四节气算法。
在农历中,太阳黄经为0度时,对应春风节气。相邻节气对应的太阳黄经相差15度。一周年内,太阳黄经从0度变化到360度,共有24个节气。
一、时间标尺——儒略日数计算
计算星历之前首先要解决时间尺问题。公历规定平年365日,闰年366日。1582年10月4日以前,公历规定每4年设置一个闰年,平均年长度365.25天,这期间的公历称为儒略历。在1582年10月15日之后实行格里高利历,规定每400年97闰,平均年长度为365.2425天。
由于儒略历存在严重的“多闰”问题,到了1582年,公历跑快了10天左右,当时就人为调整了10天,并从此实行格里历。因此务必注意1582年10月4日(儒略历)的下一日为1582年10月15日(格里历)。就是说1582年10月份少了10天。
在儒略历中,能被4整除的年份为闰年,这一年有366天,其它年份为平年(365天)。 如900年和1236年为闰年,而750年和1429年为平年。
格里高利历法也采用这一规则,但下列年份除外:不能被100整除的年份为平年,如1700年,1800年,1900年和2100年。其余能被400整除的年份则为闰年,如1600年,2000年和2400年。
儒略日数(简称儒略日):
儒略日数是指从公元 -4712 年开始连续计算日数得出的天数及不满一日的小数,通常记为 JD (**)。传统上儒略日的计数是从格林尼治平午,即世界时12点开始的。若以力学时(或历书时)为标尺,这种计数通常表达为“儒略历书日”,即JDE (**),其中E只是一种表征,即按每天86400个标准秒长严格地计日。例如:
1977年4月26.4日 UT = JD 2443259.9
1977年4月26.4日 TD = JDE 2443259.9
儒略日的计算:
设Y为给定年份,M为月份,D为该月日期(可以带小数)。
若M > 2,Y和M不变,若 M =1或2,以Y–1代Y,以M+12代M,换句话说,如果日期在1月或2月,则被看作是在前一年的13月或14月。
对格里高利历有 :A = INT(Y/100) B = 2 - A + INT(A/4)
对儒略历,取 B = 0
儒略日即为:
JD = INT(365.25(Y+4716))+INT(30.6001(M+1))+D+B-
本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/978147
推荐阅读
相关标签
  

闽ICP备14008679号