12 while (day >= 146097L) { day -= 146097L; ++year; }
17 if (pwday) *pwday = (day + 3) % 7;
20 if (day == 146096L) { year += 3; day = 36524L; }
21 else { year += day / 36524L; day %= 36524L; }
28 if (day == 1460) { year += 3; day = 365; }
29 else { year += day / 365; day %= 365; }
33 month = (day + 5) / 306;
34 day = (day + 5) % 306;
36 if (month >= 10) { yday -= 306; ++year; month -= 10; }
37 else { yday += 59; month += 2; }
40 cd->
month = month + 1;
43 if (pyday) *pyday = yday;
void caldate_frommjd(struct caldate *cd, long day, int *pwday, int *pyday)