#:g1: local-time-durationの紹介

Posted 2014-11-22 15:00:00 GMT

(LISP Library 365参加エントリ)

 LISP Library 365 の327日目です。

local-time-durationとはなにか

 local-time-durationは、Webcheckout, Inc.作のlocal-timeと親和性の高く、timestamp形式が利用可能な期間を扱うライブラリです。

パッケージ情報

パッケージ名local-time-duration
Quicklisp
CLiKiCLiki: Article not found
Quickdocslocal-time-duration | Quickdocs

インストール方法

(ql:quickload :local-time-duration)

試してみる

 どんな関数があるかは、Quickdocsで確認できます。

 定義されている関数は下記の通りですが、大体名前から使い方が想像できます。

 2015年の1月1日から現時刻の期間を求めて、その期間分過去に戻ったtimestampを得るとするとこんな感じになります。

(let* ((now (local-time:now))
       (d (ltd:timestamp-difference (local-time:encode-timestamp 0 0 0 0 1 1 2015)
                                    now)))
  (ltd:timestamp-duration- now d))
;=>  @2016-10-14T00:00:00.000000+09:00

三週間後のタイムスタンプは、

(ltd:timestamp-duration+ (local-time:now)
                         (ltd:duration :week 3))
;=>  @2015-12-14T00:00:00.000000+09:00

等、シンプルです。

まとめ

 今回は、local-time-durationを紹介してみました。
local-timeと組み合せて手軽に期間が扱えて便利ですね。

comments powered by Disqus