mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-23 17:53:37 +08:00
(tz_compute): If time to switch to DST is later in the year switch back in the next year.
This commit is contained in:
parent
a825f8e844
commit
896ebd6bf6
15
time/tzset.c
15
time/tzset.c
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user