]> git.eshelyaron.com Git - emacs.git/commitdiff
(math-std-daylight-savings): Switch to new North American rule.
authorChong Yidong <cyd@stupidchicken.com>
Sat, 17 Mar 2007 17:41:19 +0000 (17:41 +0000)
committerChong Yidong <cyd@stupidchicken.com>
Sat, 17 Mar 2007 17:41:19 +0000 (17:41 +0000)
lisp/calc/calc-forms.el

index 00c43af7c592e77412652c0c28af7807aa1c1880..1b4b6fea94ab7968bb80c9f2bbcb1c930518306d 100644 (file)
     (calcFunc-unixtime (calcFunc-unixtime date z1) z2)))
 
 (defun math-std-daylight-savings (date dt zone bump)
-  "Standard North American daylight savings algorithm.
-This implements the rules for the U.S. and Canada as of 1987.
-Daylight savings begins on the first Sunday of April at 2 a.m.,
-and ends on the last Sunday of October at 2 a.m."
-  (cond ((< (nth 1 dt) 4) 0)
-       ((= (nth 1 dt) 4)
-        (let ((sunday (math-prev-weekday-in-month date dt 7 0)))
+  "Standard North American daylight saving algorithm.
+This implements the rules for the U.S. and Canada as of 2007.
+Daylight saving begins on the second Sunday of March at 2 a.m.,
+and ends on the first Sunday of November at 2 a.m."
+  (cond ((< (nth 1 dt) 3) 0)
+       ((= (nth 1 dt) 3)
+        (let ((sunday (math-prev-weekday-in-month date dt 14 0)))
           (cond ((< (nth 2 dt) sunday) 0)
                 ((= (nth 2 dt) sunday)
                  (if (>= (nth 3 dt) (+ 3 bump)) -1 0))
                 (t -1))))
-       ((< (nth 1 dt) 10) -1)
-       ((= (nth 1 dt) 10)
-        (let ((sunday (math-prev-weekday-in-month date dt 31 0)))
+       ((< (nth 1 dt) 11) -1)
+       ((= (nth 1 dt) 11)
+        (let ((sunday (math-prev-weekday-in-month date dt 7 0)))
           (cond ((< (nth 2 dt) sunday) -1)
                 ((= (nth 2 dt) sunday)
                  (if (>= (nth 3 dt) (+ 2 bump)) 0 -1))