From baf96a567d8294c80ff6dbda12f1af5dd1b539ab Mon Sep 17 00:00:00 2001 From: Arthur David Olson Date: Wed, 18 Oct 1995 16:36:05 -0400 Subject: [PATCH] 64-bit architecture speedup SCCS-file: localtime.c SCCS-SID: 7.46 --- localtime.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/localtime.c b/localtime.c index 800378e..a65e3fd 100644 --- a/localtime.c +++ b/localtime.c @@ -1173,6 +1173,17 @@ register struct tm * const tmp; if (tmp->tm_wday < 0) tmp->tm_wday += DAYSPERWEEK; y = EPOCH_YEAR; +#define CYCLE_DAYS 1022679L /* Any consecutive CYCLE_DAYS days... */ +#define CYCLE_YEARS 2800L /* make up exactly CYCLE_YEARS years. */ + if (days >= CYCLE_DAYS || days <= -CYCLE_DAYS) { + register int cycles; + + cycles = (days >= 0) ? + (days / CYCLE_DAYS) : + (-1 - (-1 - days) / CYCLE_DAYS); + days -= cycles * CYCLE_DAYS; + y += cycles * CYCLE_YEARS; + } if (days >= 0) for ( ; ; ) { yleap = isleap(y);