diff options
Diffstat (limited to 'timezone')
-rw-r--r-- | timezone/zic.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/timezone/zic.c b/timezone/zic.c index a5202a1ac3..91f0d20cc1 100644 --- a/timezone/zic.c +++ b/timezone/zic.c @@ -1748,7 +1748,7 @@ stringoffset(char *result, long offset) minutes = offset % MINSPERHOUR; offset /= MINSPERHOUR; hours = offset; - if (hours >= HOURSPERDAY) { + if (hours > HOURSPERDAY) { result[0] = '\0'; return -1; } @@ -1851,7 +1851,9 @@ stringzone(char *result, const struct zone *const zpfirst, const int zonecount) rp = &zp->z_rules[i]; if (stdrp == NULL || rp->r_hiyear > stdrp->r_hiyear || (rp->r_hiyear == stdrp->r_hiyear && - rp->r_month > stdrp->r_month)) + (rp->r_month > stdrp->r_month || + (rp->r_month == stdrp->r_month && + rp->r_dayofmonth > stdrp->r_dayofmonth)))) stdrp = rp; } if (stdrp != NULL && stdrp->r_stdoff != 0) |