日付変換
概要
様々な日付変換を行う
実装
-
グレゴリオ暦(Gregorian Calendar Date)と修正ユリウス日(Modified Julian Date)の相互変換
# Gregorian Calendar Date -> Modified Julian Date
def convert1(y, m, d):
if m <= 2:
m += 12
y -= 1
mjd = int(365.25*y) + (y//400) - (y//100) + int(30.59*(m-2)) + d - 678912
return mjd
# Modified Julian Date -> Gregorian Calendar Date
def convert2(mjd):
n = mjd + 678881
a = 4*n + 3 + 4*(3*(4*(n+1)//146097+1)//4)
b = 5*((a % 1461)//4) + 2
y, m, d = a//1461, b//153 + 3, (b % 153)//5 + 1
if m >= 13:
y += 1
m -= 12
return y, m, d
Verified
-
AOJ: "0261: Mayan Crucial Prediction": source (Python3, 0.03sec)