yearinfo
struct yearinfo *next;
} *years, *yearinfo;
while (wdayn <= yearinfo->monthdays[month])
yearinfo = years;
while (yearinfo != NULL) {
if (yearinfo->year == year)
yearinfo = yearinfo -> next;
if (yearinfo == NULL) {
yearinfo = (struct yearinfo *)calloc(1,
sizeof(struct yearinfo));
if (yearinfo == NULL)
yearinfo->year = year;
yearinfo->next = years;
years = yearinfo;
yearinfo->monthdays = monthdaytab[isleap(year)];
yearinfo->ieaster = easter(year);
yearinfo->ipaskha = paskha(year);
fpom(year, UTCOffset, yearinfo->ffullmoon,
yearinfo->fnewmoon);
fpom(year, UTCOFFSET_CNY, yearinfo->ffullmooncny,
yearinfo->fnewmooncny);
yearinfo->equinoxdays, yearinfo->solsticedays);
yearinfo->firstcnyday = calculatesunlongitude30(year,
UTCOFFSET_CNY, yearinfo->ichinesemonths);
for (m = 0; yearinfo->fnewmooncny[m] >= 0; m++) {
if (yearinfo->fnewmooncny[m] >
yearinfo->firstcnyday) {
yearinfo->firstcnyday =
floor(yearinfo->fnewmooncny[m - 1]);
for (d = 1; d <= yearinfo->monthdays[imonth]; d++) {
while (d <= yearinfo->monthdays[imonth]) {
while (d <= yearinfo->monthdays[imonth])
while (d <= yearinfo->monthdays[imonth]) {
if (remember_yd(year, yearinfo->ieaster + offset,
if (remember_yd(year, yearinfo->ipaskha + offset,
if (remember_yd(year, yearinfo->firstcnyday + offset,
for (i = 0; yearinfo->ffullmoon[i] > 0; i++) {
floor(yearinfo->ffullmoon[i]) + offset,
yearinfo->ffullmoon[i]);
for (i = 0; yearinfo->ffullmoon[i] > 0; i++) {
floor(yearinfo->fnewmoon[i]) + offset,
ed = floattotime(yearinfo->fnewmoon[i]);
if (remember_yd(year, yearinfo->equinoxdays[0] + offset,
ed = floattotime(yearinfo->equinoxdays[0]);
if (remember_yd(year, yearinfo->equinoxdays[1] + offset,
ed = floattotime(yearinfo->equinoxdays[1]);
yearinfo->solsticedays[0] + offset, &rm, &rd)) {
ed = floattotime(yearinfo->solsticedays[0]);
yearinfo->solsticedays[1] + offset, &rm, &rd)) {
ed = floattotime(yearinfo->solsticedays[1]);