37 lines
1.3 KiB
Diff
37 lines
1.3 KiB
Diff
|
From 47f3da1cf49377c25772bb54d07db55225bbb142 Mon Sep 17 00:00:00 2001
|
||
|
From: Guillaume Bourcier <guillaumebourcier@free.fr>
|
||
|
Date: Tue, 11 Oct 2011 13:45:33 +0200
|
||
|
Subject: [PATCH] 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>
|
||
|
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
|
||
|
---
|
||
|
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 19d68e1..8e2ebf1 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
|
||
|
--
|
||
|
1.7.3.4
|
||
|
|