Obliczanie daty w przyszłości lub przeszłości

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.

See Also: