1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-05 08:53:45 +00:00

Fixed dst-in-effect for southern hemisphere. Also made doc string clearer.

This commit is contained in:
Edward M. Reingold 1995-12-05 22:55:22 +00:00
parent d613bdc034
commit 021edd45dc

View File

@ -332,27 +332,26 @@ If the locale never uses daylight savings time, set this to nil.")
(defun dst-in-effect (date)
"True if on absolute DATE daylight savings time is in effect.
Fractional part of DATE is time of day."
Fractional part of DATE is local standard time of day."
(let* ((year (extract-calendar-year
(calendar-gregorian-from-absolute (floor date))))
(dst-starts (and (eval calendar-daylight-savings-starts)
(dst-starts-gregorian (eval calendar-daylight-savings-starts))
(dst-ends-gregorian (eval calendar-daylight-savings-ends))
(dst-starts (and dst-starts-gregorian
(+ (calendar-absolute-from-gregorian
(eval calendar-daylight-savings-starts))
dst-starts-gregorian)
(/ calendar-daylight-savings-starts-time
60.0 24.0))))
(dst-ends (and (eval calendar-daylight-savings-ends)
(dst-ends (and dst-ends-gregorian
(+ (calendar-absolute-from-gregorian
(eval calendar-daylight-savings-ends))
dst-ends-gregorian)
(/ (- calendar-daylight-savings-ends-time
calendar-daylight-time-offset)
60.0 24.0)))))
(and (and dst-starts dst-ends
(or (and (< dst-starts dst-ends);; northern hemi.
(<= dst-starts date) (< date dst-ends))
(and (< dst-ends dst-starts);; southern hemi.
(<= dst-starts date) (< date dst-ends))
(and dst-starts (not dst-ends) (<= dst-starts date))
(and dst-ends (not dst-starts) (< date dst-ends)))))))
(and dst-starts dst-ends
(if (< dst-starts dst-ends)
(and (<= dst-starts date) (< date dst-ends))
(or (<= dst-starts date) (< date dst-ends))))))
(defun dst-adjust-time (date time &optional style)
"Adjust, to account for dst on DATE, decimal fraction standard TIME.