43.10 Вычисления времени

Эти функции выполняют календарные вычисления с использованием значений времени (см. Время суток). Как и в случае с любым значением времени, значение nil для любого из их аргументов времени означает текущее системное время, а конечное число означает количество секунд с начала эпохи.

Функция: time-less-p t1 t2

Возвращает t, если значение времени t1 меньше значения времени t2.

Функция: time-equal-p t1 t2

Возвращает t, если два значения времени t1 и t2 равны. Результат равен nil, если хотя бы один из аргументов является NaN. Для целей сравнения аргумент nil представляет текущее время с бесконечной разрешающей способностью, поэтому эта функция возвращает nil, если один аргумент равен nil, а другой — нет, и вызывающие могут использовать nil для представления неизвестного значения времени, которое не равно никакому временному штампу.

Функция: time-subtract t1 t2

Возвращает разницу во времени t1 − t2 между двумя значениями времени в виде временной метки Lisp. Результат точен, и его разрешающая способность не хуже, чем у худшего из двух аргументов. Если вам нужна разница в единицах прошедших секунд, вы можете преобразовать ее с помощью time-convert или float-time. См. Преобразование времени.

Функция: time-add t1 t2

Возвращает сумму двух значений времени, используя те же правила преобразования, что и time-subtract. Один аргумент должен представлять разницу во времени, а не точку во времени, как значение времени, которое часто является просто одним числом прошедших секунд. Вот как добавить количество секунд к значению времени:

(time-add time seconds)
Функция: time-to-days time-value

Эта функция возвращает количество дней между началом года 1 и time-value, предполагая часовой пояс по умолчанию. Операционная система ограничивает диапазон значений времени и часового пояса.

Функция: days-to-time days

Это не совсем обратная функция к time-to-days, поскольку она использует эпоху Emacs (вместо года 1) по историческим причинам. Чтобы получить обратное, вычтите (time-to-days 0) из days, в противном случае days-to-time может вернуть nil, если days отрицательно.

Функция: time-to-day-in-year time-value

Эта функция возвращает номер дня в году, соответствующий time-value, предполагая часовой пояс по умолчанию. Операционная система ограничивает диапазон значений времени и часового пояса.

Функция: date-leap-year-p year

Эта функция возвращает t, если year — високосный год.

Функция: date-days-in-month year month

Возвращает количество дней в month в year. Например, февраль 2020 года имеет 29 дней.

Функция: date-ordinal-to-time year ordinal

Возвращает дату ordinal в year в виде декодированной структуры времени. Например, 120-й день в 2004 году — 29 апреля.