1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-04-27 16:51:06 -07:00

Document that time-to-days and days-to-time use different epochs

* doc/lispref/os.texi (Time Calculations):
* lisp/calendar/time-date.el (days-to-time, time-to-days): Doc fixes.
(Bug#66502)
This commit is contained in:
Bob Rogers 2023-10-12 10:23:35 -07:00 committed by Eli Zaretskii
parent dc8b336d02
commit 0ea2d6d9e8
2 changed files with 13 additions and 2 deletions

View file

@ -2104,6 +2104,14 @@ This function returns the number of days between the beginning of year
The operating system limits the range of time and zone values. The operating system limits the range of time and zone values.
@end defun @end defun
@defun days-to-time days
This is not quite the inverse of the @code{time-to-days} function, as
it uses the Emacs epoch (instead of the year 1) for historical
reasons. To get the inverse, subtract @code{(time-to-days 0)} from
@var{days}, in which case @code{days-to-time} may return @code{nil} if
@var{days} is negative.
@end defun
@defun time-to-day-in-year time-value @defun time-to-day-in-year time-value
This returns the day number within the year corresponding to @var{time-value}, This returns the day number within the year corresponding to @var{time-value},
assuming the default time zone. assuming the default time zone.

View file

@ -181,7 +181,10 @@ If DATE lacks timezone information, GMT is assumed."
;;;###autoload ;;;###autoload
(defun days-to-time (days) (defun days-to-time (days)
"Convert DAYS into a time value." "Convert Emacs-epoch DAYS into a time value.
Note that this does not use the same epoch as time-to-days; you
must subtract (time-to-days 0) first to convert, and may get nil
if the result is before the start."
;; FIXME: We should likely just pass `t' to `time-convert'. ;; FIXME: We should likely just pass `t' to `time-convert'.
;; All uses I could find in Emacs, GNU ELPA, and NonGNU ELPA can handle ;; All uses I could find in Emacs, GNU ELPA, and NonGNU ELPA can handle
;; any valid time representation as return value. ;; any valid time representation as return value.
@ -243,7 +246,7 @@ DATE1 and DATE2 should be date-time strings."
;;;###autoload ;;;###autoload
(defun time-to-days (time) (defun time-to-days (time)
"The absolute date corresponding to TIME, a time value. "The absolute pseudo-Gregorian date for TIME, a time value.
The absolute date is the number of days elapsed since the imaginary The absolute date is the number of days elapsed since the imaginary
Gregorian date Sunday, December 31, 1 BC." Gregorian date Sunday, December 31, 1 BC."
(let* ((tim (decode-time time)) (let* ((tim (decode-time time))