4 void datetime_tai(dt,t)
17 if (tod < 0) { tod += 86400; --day; }
19 dt->hour = tod / 3600;
24 wday = (day + 4) % 7; if (wday < 0) wday += 7;
28 /* day 0 is march 1, 2000 */
29 year = 5 + day / 146097;
30 day = day % 146097; if (day < 0) { day += 146097; --year; }
31 /* from now on, day is nonnegative */
33 if (day == 146096) { year += 3; day = 36524; }
34 else { year += day / 36524; day %= 36524; }
40 if (day == 1460) { year += 3; day = 365; }
41 else { year += day / 365; day %= 365; }
45 mon = (day + 5) / 306;
46 day = day + 5 - 306 * mon;
48 if (mon >= 10) { yday -= 306; ++year; mon -= 10; }
49 else { yday += 59; mon += 2; }
52 dt->year = year - 1900;