From 30962bacee7f23bdbe714ed650aa7d540bc115e2 Mon Sep 17 00:00:00 2001 From: "Edward M. Reingold" Date: Tue, 5 Dec 1995 22:55:22 +0000 Subject: Fixed dst-in-effect for southern hemisphere. Also made doc string clearer. --- lisp/calendar/cal-dst.el | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) (limited to 'lisp') diff --git a/lisp/calendar/cal-dst.el b/lisp/calendar/cal-dst.el index 598af905d99..78bb3c12721 100644 --- a/lisp/calendar/cal-dst.el +++ b/lisp/calendar/cal-dst.el @@ -332,27 +332,26 @@ If the locale never uses daylight savings time, set this to nil.") (defun dst-in-effect (date) "True if on absolute DATE daylight savings time is in effect. -Fractional part of DATE is time of day." +Fractional part of DATE is local standard time of day." (let* ((year (extract-calendar-year (calendar-gregorian-from-absolute (floor date)))) - (dst-starts (and (eval calendar-daylight-savings-starts) + (dst-starts-gregorian (eval calendar-daylight-savings-starts)) + (dst-ends-gregorian (eval calendar-daylight-savings-ends)) + (dst-starts (and dst-starts-gregorian (+ (calendar-absolute-from-gregorian - (eval calendar-daylight-savings-starts)) + dst-starts-gregorian) (/ calendar-daylight-savings-starts-time 60.0 24.0)))) - (dst-ends (and (eval calendar-daylight-savings-ends) + (dst-ends (and dst-ends-gregorian (+ (calendar-absolute-from-gregorian - (eval calendar-daylight-savings-ends)) + dst-ends-gregorian) (/ (- calendar-daylight-savings-ends-time calendar-daylight-time-offset) 60.0 24.0))))) - (and (and dst-starts dst-ends - (or (and (< dst-starts dst-ends);; northern hemi. - (<= dst-starts date) (< date dst-ends)) - (and (< dst-ends dst-starts);; southern hemi. - (<= dst-starts date) (< date dst-ends)) - (and dst-starts (not dst-ends) (<= dst-starts date)) - (and dst-ends (not dst-starts) (< date dst-ends))))))) + (and dst-starts dst-ends + (if (< dst-starts dst-ends) + (and (<= dst-starts date) (< date dst-ends)) + (or (<= dst-starts date) (< date dst-ends)))))) (defun dst-adjust-time (date time &optional style) "Adjust, to account for dst on DATE, decimal fraction standard TIME. -- cgit v1.2.1