gdate
gdate(nd, &dt);
struct date *gdate(int _nd, struct date *_dt);
return (gdate(easterodn(y), dt));
struct date gdate;
date_set(&gdate, tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday);
return fixed_from_gregorian(&gdate);
struct date gdate;
gregorian_from_fixed(rd, &gdate);
int g_year = gdate.year;
gdate.year, gdate.month, gdate.day);
gregorian_from_fixed(newyear, &gdate);
gdate.year, gdate.month, gdate.day);
date_set(&gdate, g_year, 2, 1);
t_jq = (double)fixed_from_gregorian(&gdate);
gregorian_from_fixed(floor(t_jq), &gdate);
gdate.year, gdate.month, gdate.day,
struct date gdate;
gregorian_from_fixed(dp->rd, &gdate);
tm.tm_year = gdate.year - 1900;
tm.tm_mon = gdate.month - 1;
tm.tm_mday = gdate.day;
struct date gdate, jdate;
gregorian_from_fixed(rd, &gdate);
gdate.year, gdate.month, gdate.day);
struct date gdate;
date_set(&gdate, tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday);
if (!parse_int_ranged(date+len-2, 2, 1, 31, &gdate.day))
if (!parse_int_ranged(date+len-4, 2, 1, 12, &gdate.month))
if (!parse_int_ranged(date, len-4, 0, 9999, &gdate.year))
if (gdate.year < 69) /* Y2K */
gdate.year += 2000;
else if (gdate.year < 100)
gdate.year += 1900;
*rd_out = fixed_from_gregorian(&gdate);
__func__, date, gdate.year, gdate.month, gdate.day);
return (gdate(nd, d));
return (gdate(nd, d));