Clojure:
Confronto tra due date

Come Fare:

(require '[clj-time.core :as time])
(require '[clj-time.coerce :as coerce])
(require '[clj-time.format :as format])

; Creare due date
(def date1 (time/date-time 2021 3 15))
(def date2 (time/date-time 2023 1 10))

; Confrontare date
(time/before? date1 date2) ; => true
(time/after? date1 date2) ; => false
(time/equal? date1 date2) ; => false

; Differenza in giorni
(def days-between (time/in-days (time/interval date1 date2)))
; => 666

; Formattare e confrontare date come stringhe
(def fmt (format/formatters :basic-date))
(def str-date1 (format/unparse fmt date1))
(def str-date2 (format/unparse fmt date2))
(= str-date1 str-date2) ; => false

Approfondimento

Comparare date è un’esigenza comune fin dall’inizio dell’era informatica. Prima di Clojure, i linguaggi come C++ e Java avevano le loro librerie per gestire le date. In Clojure, clj-time, basata sulla libreria Joda-Time, permette la manipolazione e il confronto di date. Alternativamente, possiamo usare la java.time API disponibile in Java 8+. clj-time offre un’API coerente e funzionale, adattandosi ai paradigmi di Clojure.

Vedi anche