未来または過去の日付の計算

Clojure:
未来または過去の日付の計算

How to: (方法)

Clojureにはclj-timeライブラリがありますが、Clojure 1.10で導入されたjava.timeを利用した例を示します。

(require '[clojure.java-time :as t])

;; 今日の日付を取得
(def today (t/local-date))

;; 3日後の日付を計算
(def three-days-later (t/plus-days today 3))

;; 5日前の日付を計算
(def five-days-ago (t/minus-days today 5))

;; 結果を表示
(println "Today: " today)
(println "Three days later: " three-days-later)
(println "Five days ago: " five-days-ago)

実行結果:

Today: 2023-03-30
Three days later: 2023-04-02
Five days ago: 2023-03-25

Deep Dive (深掘り)

ClojureはJVMベースの言語であり、Javaのjava.timeライブラリの利点を享受できます。clj-timeは以前よく使われましたが、Java 8から導入されたjava.timeが登場して主流となりました。

他言語では、Pythonにはdatetimeモジュール、JavaScriptにはDateオブジェクトやmoment.jsライブラリがあります。

java.timeは不変オブジェクト(変更不能)であり、「チェーン」メソッドを使って直感的に日付を操作できることが特徴です。ローカライズやタイムゾーンの管理も強力です。Clojureでは、このライブラリをラップして簡潔で機能豊富なAPIを提供するclojure.java-timeというライブラリを使用することが一般的です。

See Also (関連情報)