From 16e5f96165395a15e98efb986cd5e842bf283e50 Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Sat, 17 Mar 2007 17:41:19 +0000 Subject: [PATCH] (math-std-daylight-savings): Switch to new North American rule. --- lisp/calc/calc-forms.el | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/lisp/calc/calc-forms.el b/lisp/calc/calc-forms.el index 00c43af7c59..1b4b6fea94a 100644 --- a/lisp/calc/calc-forms.el +++ b/lisp/calc/calc-forms.el @@ -1312,20 +1312,20 @@ (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)) -- 2.39.5