From c2c188c8ccd88a57a8349b1313b3c19fef1a8c01 Mon Sep 17 00:00:00 2001 From: "brendan%mozilla.org" Date: Wed, 15 May 2002 19:44:34 +0000 Subject: [PATCH] Checking in khanson@netscape.com's patch fixing GMT offset day-overflow (65671, r=mccabe, sr=jband). --- js/src/jsdate.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/js/src/jsdate.c b/js/src/jsdate.c index c58bde02f8e8..af116ca392e4 100644 --- a/js/src/jsdate.c +++ b/js/src/jsdate.c @@ -332,12 +332,15 @@ DaylightSavingTA(jsdouble t) return result; } -#define LocalTime(t) ((t) + LocalTZA + DaylightSavingTA(t)) + +#define AdjustTime(t) fmod(LocalTZA + DaylightSavingTA(t), msPerDay) + +#define LocalTime(t) ((t) + AdjustTime(t)) static jsdouble UTC(jsdouble t) { - return t - LocalTZA - DaylightSavingTA(t - LocalTZA); + return t - AdjustTime(t - LocalTZA); } static intN @@ -1493,8 +1496,7 @@ date_format(JSContext *cx, jsdouble date, formatspec format, jsval *rval) /* offset from GMT in minutes. The offset includes daylight savings, if it applies. */ - jsint minutes = (jsint) floor((LocalTZA + DaylightSavingTA(date)) - / msPerMinute); + jsint minutes = (jsint) floor(AdjustTime(date) / msPerMinute); /* map 510 minutes to 0830 hours */ intN offset = (minutes / 60) * 100 + minutes % 60;