diff options
author | Guillaume Bourcier <guillaumebourcier@free.fr> | 2011-10-11 13:45:33 +0200 |
---|---|---|
committer | Carmelo Amoroso <carmelo.amoroso@st.com> | 2011-10-12 13:23:13 +0200 |
commit | 47f3da1cf49377c25772bb54d07db55225bbb142 (patch) | |
tree | b5d0a9528094253e9feba102a74b3238b22dc852 /libc/misc/time/time.c | |
parent | 7eaca202b9f1f79a3c1d2a56a3879364cfa89e42 (diff) |
libc: fix daylight saving time handling
The algorithm computing daylight saving time incorrectly adds a day for
each month after January for leap years. The clock shift from/to DST can
be delayed if the last Sunday of a transition month is exactly seven
days before the first of the following month.
This change adds a day for the February month only.
Signed-off-by: Guillaume Bourcier <guillaumebourcier@free.fr>
Signed-off-by: Richard Braun <rbraun@sceen.net>
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
Diffstat (limited to 'libc/misc/time/time.c')
-rw-r--r-- | libc/misc/time/time.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/libc/misc/time/time.c b/libc/misc/time/time.c index 19d68e105..8e2ebf12e 100644 --- a/libc/misc/time/time.c +++ b/libc/misc/time/time.c @@ -689,7 +689,7 @@ static int tm_isdst(register const struct tm *__restrict ptm, ++day; } monlen = 31 + day_cor[r->month -1] - day_cor[r->month]; - if (isleap && (r->month > 1)) { + if (isleap && (r->month == 2)) { ++monlen; } /* Wweekday (0 is Sunday) of 1st of the month |