Clojure:
Obliczanie daty w przyszłości lub przeszłości
How to:
W Clojure do obliczania dat można wykorzystać bibliotekę clj-time
, bazującą na Joda-Time. Poniżej przykłady użycia.
(require '[clj-time.core :as t])
(require '[clj-time.coerce :as c])
(require '[clj-time.periodic :as p])
;; Dodaj tydzień do aktualnego czasu
(-> (t/now)
(t/plus (t/weeks 1))
(c/to-string))
;; => "2023-02-23T14:40:25.000Z"
;; Odejmij 30 dni od wybranej daty
(-> (t/date-time 2023 1 24)
(t/minus (t/days 30))
(c/to-string))
;; => "2022-12-25T00:00:00.000Z"
Deep Dive:
Clojure używa Javy wewnętrznie, więc clj-time
jest nakładką na Joda-Time, znany i wytrzymały silnik obsługi czasu w Javie. Alternatywy to java.time
(biblioteka czasu w Java 8+) lub wewnętrzny moduł Clojure java.util.Calendar
. W obliczeniach dat ważne jest uwzględnienie stref czasowych i przestępnych sekund. Rozwiązania typu Joda-Time czy java.time
radzą sobie z tym za nas.