13 int jdate(int32_t julianDay, int32_t *year, int32_t *dayOfYear) {
16 int32_t
ja,
jb, jc,
jd, je, jalpha;
18 jalpha = (int32_t) (((julianDay - 1867216
L) - 0.25) / 36524.25);
19 ja = julianDay + 1 + jalpha - (int32_t) (0.25 * jalpha);
22 jc = (int32_t) (6680.0 + ((
jb - 2439870
L) - 122.1) / 365.25);
23 jd = 365 * jc + (int32_t) (0.25 * jc);
24 je = (int32_t) ((
jb -
jd) / 30.6001);
26 day =
jb -
jd - (int32_t) (30.6001 * je);
37 int numDaysEachMonth[24] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,
38 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
41 for (
int idxMonth = 1; idxMonth < month; idxMonth++)
42 *dayOfYear = *dayOfYear + numDaysEachMonth[
isleap(*year) * 12 + (idxMonth - 1)];