]> code.delx.au - gnu-emacs/commitdiff
Fixed dst-in-effect for southern hemisphere. Also made doc string clearer.
authorEdward M. Reingold <reingold@emr.cs.iit.edu>
Tue, 5 Dec 1995 22:55:22 +0000 (22:55 +0000)
committerEdward M. Reingold <reingold@emr.cs.iit.edu>
Tue, 5 Dec 1995 22:55:22 +0000 (22:55 +0000)
lisp/calendar/cal-dst.el

index 598af905d99f8a2420780b572e50bcf66bcfeb7c..78bb3c1272148b1d709dfa52f00c048ea4f5fec6 100644 (file)
@@ -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.