diff --git a/usr.bin/calendar/day.c b/usr.bin/calendar/day.c index 8c90d5c5099b..14bc2e785a6b 100644 --- a/usr.bin/calendar/day.c +++ b/usr.bin/calendar/day.c @@ -361,6 +361,11 @@ isnow(endp, monthp, dayp, varp) } if (!(flags & F_EASTER)) { + if (day + cumdays[month] > cumdays[month + 1]) { /* off end of month */ + day -= (cumdays[month + 1] - cumdays[month]); /* adjust */ + if (++month > 12) /* next year */ + month = 1; + } *monthp = month; *dayp = day; day = cumdays[month] + day; @@ -376,9 +381,6 @@ isnow(endp, monthp, dayp, varp) #ifdef DEBUG fprintf(stderr, "day2: day %d(%d-%d) yday %d\n", *dayp, day, cumdays[month], tp->tm_yday); #endif - if (day > cumdays [month + 1]) /* off end of month */ - return (0); - /* if today or today + offset days */ if (day >= tp->tm_yday - f_dayBefore && day <= tp->tm_yday + offset + f_dayAfter)