def time.civil
ezsys@0.1.0.0 · src/clock.bend:70
import ezsys@0.1.0.0/src/clock.bend as Clock
import Base
70
71def time.civil(days: U32) -> Ymd:
72 +z = (days + 719468 : U32)
73 +era = (z / 146097 : U32)
74 +doe = (z - era * 146097 : U32)
75 +yoe = ((doe - doe / 1460 + doe / 36524 - doe / 146096) / 365 : U32)
76 +doy = (doe - (365 * yoe + yoe / 4 - yoe / 100) : U32)
77 +mp = ((5 * doy + 2) / 153 : U32)
78 +m = time.civil.month(mp)
79 Ymd{time.civil.year((yoe + era * 400 : U32), m), m,
80 (doy - (153 * mp + 2) / 5 + 1 : U32)}