Lines Matching +full:offset +full:- +full:y
33 #define isleap(y) (((y) % 4) == 0 && (((y) % 100) != 0 || ((y) % 400) == 0)) argument
45 timesub(timep, offset, tmp) in timesub() argument
47 const long offset;
52 long y; local
58 rem += (offset);
61 --days;
64 rem -= SECSPERDAY;
67 tmp->tm_hour = (int) (rem / SECSPERHOUR);
69 tmp->tm_min = (int) (rem / SECSPERMIN);
74 tmp->tm_sec = (int) (rem % SECSPERMIN) ;
75 tmp->tm_wday = (int) ((EPOCH_WDAY + days) % DAYSPERWEEK);
76 if (tmp->tm_wday < 0)
77 tmp->tm_wday += DAYSPERWEEK;
78 y = EPOCH_YEAR;
79 #define LEAPS_THRU_END_OF(y) ((y) / 4 - (y) / 100 + (y) / 400) argument
80 while (days < 0 || days >= (long) year_lengths[yleap = isleap(y)]) {
83 newy = y + days / DAYSPERNYEAR;
85 --newy;
86 days -= (newy - y) * DAYSPERNYEAR +
87 LEAPS_THRU_END_OF(newy - 1) -
88 LEAPS_THRU_END_OF(y - 1);
89 y = newy;
91 tmp->tm_year = y - TM_YEAR_BASE;
92 tmp->tm_yday = (int) days;
94 for (tmp->tm_mon = 0; days >= (long) ip[tmp->tm_mon]; ++(tmp->tm_mon))
95 days = days - (long) ip[tmp->tm_mon];
96 tmp->tm_mday = (int) (days + 1);
97 tmp->tm_isdst = 0;
101 * Re-entrant version of gmtime.