Mercurial > emacs
changeset 32290:0d473fed67ba
(timezone-parse-date): Doc fix. Fix regexps for (5)
without timezone and (8) with timezone to enforce some whitespace.
Simplify code somewhat.
author | Dave Love <fx@gnu.org> |
---|---|
date | Sun, 08 Oct 2000 16:26:04 +0000 |
parents | 1c042b411eda |
children | ad4a568e556a |
files | lisp/timezone.el |
diffstat | 1 files changed, 18 insertions(+), 24 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/timezone.el Sun Oct 08 16:20:55 2000 +0000 +++ b/lisp/timezone.el Sun Oct 08 16:26:04 2000 +0000 @@ -120,7 +120,10 @@ (defun timezone-parse-date (date) "Parse DATE and return a vector [YEAR MONTH DAY TIME TIMEZONE]. -19 is prepended to year if necessary. Timezone may be nil if nothing. +Two-digit dates are `windowed'. Those <69 have 2000 added; otherwise 1900 +is added. Three-digit dates have 1900 added. +TIMEZONE is nil for DATEs without a zone field. + Understands the following styles: (1) 14 Apr 89 03:20[:12] [GMT] (2) Fri, 17 Mar 89 4:01[:33] [GMT] @@ -182,11 +185,11 @@ ;; Styles: (5) without timezone. (setq year 3 month 2 day 1 time 4 zone nil)) ((string-match - "\\([0-9]+\\)-\\([0-9]+\\)-\\([0-9]+\\)[ \t]+\\([0-9]+:[0-9]+:[0-9]+\\)[ \t]*\\([-+a-zA-Z0-9]+\\)" date) + "\\([0-9]+\\)-\\([0-9]+\\)-\\([0-9]+\\)[ \t]+\\([0-9]+:[0-9]+:[0-9]+\\)[ \t]+\\([-+a-zA-Z0-9]+\\)" date) ;; Styles: (8) with timezone. (setq year 1 month 2 day 3 time 4 zone 5)) ((string-match - "\\([0-9]+\\)-\\([0-9]+\\)-\\([0-9]+\\)[ \t]+\\([0-9]+:[0-9]+\\)[ \t]*\\([-+a-zA-Z0-9:]+\\)" date) + "\\([0-9]+\\)-\\([0-9]+\\)-\\([0-9]+\\)[ \t]+\\([0-9]+:[0-9]+\\)[ \t]+\\([-+a-zA-Z0-9:]+\\)" date) ;; Styles: (8) with timezone with a colon in it. (setq year 1 month 2 day 3 time 4 zone 5)) ((string-match @@ -339,30 +342,21 @@ (cond ((<= 24 hour) ;24 -> 00 (setq hour (- hour 24)) (setq day (1+ day)) - (if (< (timezone-last-day-of-month month year) day) - (progn - (setq month (1+ month)) - (setq day 1) - (if (< 12 month) - (progn - (setq month 1) - (setq year (1+ year)) - )) - ))) + (when (< (timezone-last-day-of-month month year) day) + (setq month (1+ month)) + (setq day 1) + (when (< 12 month) + (setq month 1) + (setq year (1+ year))))) ((> 0 hour) (setq hour (+ hour 24)) (setq day (1- day)) - (if (> 1 day) - (progn - (setq month (1- month)) - (if (> 1 month) - (progn - (setq month 12) - (setq year (1- year)) - )) - (setq day (timezone-last-day-of-month month year)) - ))) - ) + (when (> 1 day) + (setq month (1- month)) + (when (> 1 month) + (setq month 12) + (setq year (1- year))) + (setq day (timezone-last-day-of-month month year))))) (vector year month day hour minute second timezone))) ;; Partly copied from Calendar program by Edward M. Reingold.