from datetime import datetime
def d_to_jd(time):
fmt = '%Y.%m.%d'
dt = datetime.strptime(time, fmt)
tt = dt.timetuple()
return tt.tm_year * 1000 + tt.tm_yday
def jd_to_time(time):
dt = datetime.strptime(time, '%Y%j').date()
fmt = '%Y.%m.%d'
return dt.strftime(fmt)
if '__main__' == __name__:
flag = input('Please input the date transform type: 1 for Julian day to date; 2 for date to Julian day:')
if 1 == int(flag):
time = input('Please input the date (YY.MM.DD):')
print(d_to_jd(time))
elif 2 == int(flag):
time = input('Please input the Julian day:')
print(jd_to_time(time))
关于年月日与年积日的转换,可以考虑儒略日这个中转作用,也就是当年的元月一日,可以转换为年积日,进行相减,即可得到年积日DOY。
上面代码有误,误导观众,刚又学习了一会儿,不要搞这么复杂,去熟悉下datetime这个模块,所有的函数都写好了,直接用。