20 if (tod < 0) { tod += 86400; --day; }
22 dt->hour = tod / 3600;
27 wday = (day + 4) % 7;
if (wday < 0) wday += 7;
32 year = 5 + day / 146097;
33 day = day % 146097;
if (day < 0) { day += 146097; --year; }
36 if (day == 146096) { year += 3; day = 36524; }
37 else { year += day / 36524; day %= 36524; }
43 if (day == 1460) { year += 3; day = 365; }
44 else { year += day / 365; day %= 365; }
48 mon = (day + 5) / 306;
49 day = day + 5 - 306 * mon;
51 if (mon >= 10) { yday -= 306; ++year; mon -= 10; }
52 else { yday += 59; mon += 2; }
55 dt->year = year - 1900;