時間の計算をする Emacs EmacsLisp
Emacs Lispで時間の計算をする方法。
時刻の取得
現在の時刻を取得するにはこれ。 list of integers
で返ってくるらしいが、これが内部的にTimestamp型のように振る舞うのだろう。
(current-time)
(25941 29952 916172 0)
文字列で欲しい場合はこうする。引数がない場合はデフォルトで現在時刻が入る。
(current-time-string (current-time))
Thu Nov 16 10:52:40 2023
時間の計算
time-add
を使うと時間の足し算ができる。
(let ((t1 (current-time)) (aday (* 24 60 60))) (current-time-string (time-add t1 aday)))
Fri Nov 17 10:52:44 2023
利用例
今日から1週間分の日付の一覧を取得してみる
(let ((t1 (current-time)) (aday (* 24 60 60))) (mapcar '(lambda (i) (format-time-string "%Y/%m/%d" (time-add t1 (* i aday)))) '(1 2 3 4 5 6 7)))
2023/10/31 | 2023/11/01 | 2023/11/02 | 2023/11/03 | 2023/11/04 | 2023/11/05 | 2023/11/06 |