以十进制年,表示的日期,例如2023年4月5日,表示为小数年为:2023.2623
如何需要把这个小数年转换为约化儒略日的算法思路如下:
def get_MJD (yearfraction):
#--------------------------
""" Compute MJD from yearfraction
:参数:小数年: time is given as a year fraction
:返回 约化儒略日
code:python3
"""
#--- 先计算这一年第一天的约化儒略日 MJD
# http://scienceworld.wolfram.com/astronomy/JulianDate.html
y = int(math.floor(yearfraction)) # year
m = 1; # month
d = 1; # day
mjd = 367*y - int(7*(y+int((m+9)/12))/4) + int(275*m/9) + d + 1721014 - 2400001
#--- 然后在加上这一年的小数部分
if y%4==0:
mjd += 366.0*(yearfraction-y)
else:
mjd += 365.0*(yearfraction-y)
return mjd