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# the year, month and day of a day number (days since 1970-01-01)
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)}

Uses (8)

Used by (3)