(tz_compute): If time to switch to DST is later in the year switch back in the next year.

This commit is contained in:
Ulrich Drepper 1998-10-25 22:10:12 +00:00
parent a825f8e844
commit 896ebd6bf6

View File

@ -517,9 +517,20 @@ tz_compute (timer, tm)
time_t timer;
const struct tm *tm;
{
if (! compute_change (&tz_rules[0], 1900 + tm->tm_year) ||
! compute_change (&tz_rules[1], 1900 + tm->tm_year))
if (! compute_change (&tz_rules[0], 1900 + tm->tm_year))
return 0;
/* We have to distinguish between northern and southern hemisphere.
For the later the daylight saving time ends in the next year. */
if (tz_rules[0].change < tz_rules[1].change)
{
if (! compute_change (&tz_rules[1], 1900 + tm->tm_year))
return 0;
}
else
{
if (! compute_change (&tz_rules[1], 1900 + tm->tm_year + 1))
return 0;
}
__daylight = tz_rules[0].offset != tz_rules[1].offset;
__timezone = -tz_rules[0].offset;