static struct tm *_localtime64_r (const time_t * now, double *_t, struct tm *p) { double tl; time_t t; struct tm tm, tm_localtime, tm_gmtime; _gmtime64_r (now, _t, &tm); if (tm.tm_year > (2037 - 1900)) tm.tm_year = 2037 - 1900; t = mktime64 (&tm); localtime_r (&t, &tm_localtime); gmtime_r (&t, &tm_gmtime); tl = *_t; tl += (mktime64 (&tm_localtime) - mktime64 (&tm_gmtime)); _gmtime64_r (now, &tl, p); p->tm_isdst = tm_localtime.tm_isdst; return p; }
struct tm *gmtime64_r (const double *_t, struct tm *p) { double t; t = *_t; return _gmtime64_r (NULL, &t, p); }
struct tm *pivotal_gmtime_r (const time_t * now, const time_t * _t, struct tm *p) { double t; t = *_t; return _gmtime64_r (now, &t, p); }
struct tm *gmtime64_r (const time64_t * _t, struct tm *p) { time64_t t; t = *_t; return _gmtime64_r (NULL, &t, p); }