以下の関数はtime値を使用して暦計算を行います(時刻を参照)。これらの関数でtime値を受け取るすべての引数では、他のtime値と同じようにnil
値はカレントシステム時刻、有限の数値はエポックからの経過秒数を意味します。
これはtime値t1がtime値t2より小ならt
をリターンする。
この関数は2つのtime値t1とt2等しければt
をリターンする。引数のいずれかがNaNの場合は結果はnil
となる。比較という目的のために、nil
の引数は無限大の解像度によるカレント時刻を表すので、呼び出し側は任意のタイムスタンプと等しくならない未知のtime値としてnil
を使うことができる。したがって一方の引数がnil
でもう一方がnil
でなければこの関数はnil
をリターンする。
これは2つのtime値の差t1 −
t2をLispタイムスタンプとしてリターンする。結果は正確であり、そのクロック解像度が2つの引数の解像度より劣ることはない。経過秒の単位の差が必要なら、time-convert
やfloat-time
で変換できる。時刻の変換を参照のこと。
これはtime-subtract
のようないくつかの変換ルールを使用して、2つのtime値の和をtime値としてリターンする。ここで引数のうち1つはある時点での時刻ではなく時間差を表すこと(time値は経過秒数という単一の数値であることがよくある)。以下はあるtime値に秒数を加算する方法:
(time-add time seconds)
この関数はAC. 1年元日からtime-valueまでの間の日数をデフォルトタイムゾーンとみなしてリターンする。timeの範囲およびzoneの値はオペレーティングシステムが制限する。
これはtime-to-days
関数の完全な逆バージョンではない。歴史的な理由によりAC.1年ではなくEmacsのエポックを使用するからである。逆バージョンとしての結果を得るにはdaysから(time-to-days
0)
を減じる。この場合には、daysが負だとdays-to-time
はnil
をリターンするかもしれない。
これはtime-valueに対応する年内の日数をデフォルトタイムゾーンとみなしてリターンする。timeの範囲およびzoneの値はオペレーティングシステムが制限する。
この関数はyearが閏年ならt
をリターンする。
yearのmonthの日数をリターンする。たとえば2020年2月は29日。
yearの序数日ordinalをデコード済みtime構造体としてリターンする。たとえば2004年の120日目は2004年4月29日。