emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] scratch/iso8601 dfba918: Allow adding time zones


From: Lars Ingebrigtsen
Subject: [Emacs-diffs] scratch/iso8601 dfba918: Allow adding time zones
Date: Mon, 8 Jul 2019 12:09:58 -0400 (EDT)

branch: scratch/iso8601
commit dfba918cfcd34a15d6bcaffb0e08e26da8911d62
Author: Lars Ingebrigtsen <address@hidden>
Commit: Lars Ingebrigtsen <address@hidden>

    Allow adding time zones
---
 lisp/calendar/time-date.el            | 4 ++++
 test/lisp/calendar/time-date-tests.el | 7 +++++++
 2 files changed, 11 insertions(+)

diff --git a/lisp/calendar/time-date.el b/lisp/calendar/time-date.el
index 35c89a2..ef6e9bc 100644
--- a/lisp/calendar/time-date.el
+++ b/lisp/calendar/time-date.el
@@ -421,6 +421,10 @@ changes in daylight saving time are not taken into 
account."
     (setq seconds (+ (* (or (decoded-time-hour delta) 0) 3600)
                      (* (or (decoded-time-minute delta) 0) 60)
                      (or (decoded-time-second delta) 0)))
+
+    ;; Time zone adjustments are basically the same as time adjustments.
+    (setq seconds (+ seconds (or (decoded-time-zone delta) 0)))
+
     (cond
      ((> seconds 0)
       (decoded-time--alter-second time seconds t))
diff --git a/test/lisp/calendar/time-date-tests.el 
b/test/lisp/calendar/time-date-tests.el
index 02df0cd..d6cf742 100644
--- a/test/lisp/calendar/time-date-tests.el
+++ b/test/lisp/calendar/time-date-tests.el
@@ -97,6 +97,13 @@
                    '(12 15 16 9 7 2019 1 t 7200)))
     ))
 
+(ert-deftest test-decoded-add-zone ()
+  (let ((time '(12 15 16 8 7 2019 1 t 7200)))
+    (should (equal (decoded-time-add time (mdec :zone -3600))
+                   '(12 15 15 8 7 2019 1 t 7200)))
+    (should (equal (decoded-time-add time (mdec :zone -7200))
+                   '(12 15 14 8 7 2019 1 t 7200)))))
+
 (require 'ert)
 
 ;;; time-date-tests.el ends here



reply via email to

[Prev in Thread] Current Thread [Next in Thread]