utc_offset() was broken with year's first/last day if struct tm.tm_gmtoff didn't exist.
1 /* Copyright (c) 2002-2003 Timo Sirainen */
4 #include "utc-offset.h"
8 int utc_offset(struct tm *tm, time_t t __attr_unused__)
11 return (int) (tm->tm_gmtoff/60);
16 /* gmtime() overwrites tm, so we need to copy it elsewhere */
21 /* max offset of 24 hours */
22 if ((ltm.tm_yday < gtm.tm_yday && ltm.tm_year == gtm.tm_year) ||
23 ltm.tm_year < gtm.tm_year)
25 else if ((ltm.tm_yday > gtm.tm_yday && ltm.tm_year == gtm.tm_year) ||
26 ltm.tm_year > gtm.tm_year)
31 offset += (ltm.tm_hour - gtm.tm_hour) * 60;
32 offset += (ltm.tm_min - gtm.tm_min);
34 /* restore overwritten tm */