diff options
author | Lars Ingebrigtsen <larsi@gnus.org> | 2019-07-08 18:09:53 +0200 |
---|---|---|
committer | Lars Ingebrigtsen <larsi@gnus.org> | 2019-07-08 18:09:53 +0200 |
commit | dfba918cfcd34a15d6bcaffb0e08e26da8911d62 (patch) | |
tree | 849a90ae50f1166120d851e8b4ede6bb862ede1d | |
parent | c632332053caaf0f08ccb9bc26183a4bc7c3f2c2 (diff) | |
download | emacs-dfba918cfcd34a15d6bcaffb0e08e26da8911d62.tar.gz |
Allow adding time zones
-rw-r--r-- | lisp/calendar/time-date.el | 4 | ||||
-rw-r--r-- | test/lisp/calendar/time-date-tests.el | 7 |
2 files changed, 11 insertions, 0 deletions
diff --git a/lisp/calendar/time-date.el b/lisp/calendar/time-date.el index 35c89a2ceac..ef6e9bc1bf7 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 02df0cd8ad7..d6cf742bc53 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 |