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 (関連情報)
- Clojure公式サイト: https://clojure.org/
clojure.java-time
GitHubページ: https://github.com/dm3/clojure.java-time- Java
java.time
パッケージドキュメント: https://docs.oracle.com/javase/8/docs/api/java/time/package-summary.html