Clojure:
Calcolo di una data futura o passata
Come fare:
Utilizziamo la libreria clj-time, basata su Joda-Time, per manipolare e calcolare date in Clojure. Installala aggiungendo [clj-time "0.15.2"]
al tuo file project.clj.
(require '[clj-time.core :as t])
(require '[clj-time.coerce :as c])
(require '[clj-time.periodic :as p])
;; Calcolare una data 10 giorni nel futuro
(let [oggi (t/now)
future-date (t/plus oggi (t/days 10))]
(str "Data futura: " (c/to-string future-date)))
;; Calcolare una data 5 anni nel passato
(let [oggi (t/now)
past-date (t/minus oggi (t/years 5))]
(str "Data passata: " (c/to-string past-date)))
Esempio di output:
"Data futura: 2023-10-30T21:18:47.332Z"
"Data passata: 2018-03-26T21:18:47.332Z"
Focus:
Dai tempi antichi, l’uomo ha creato calendari per tracciare il tempo. In informatica, manipolare le date è sempre stata una sfida per via delle diverse rappresentazioni e fusi orari.
Clj-time fornisce una facciata Clojure per la più robusta libreria Java Joda-Time. Joda-Time è spesso preferita alla java.util.Date
per la sua immutabilità e l’API fluente.
Mentre clj-time segue il metodo immutabile di Joda-Time, un’alternativa moderna è la API Java java.time
(JSR-310), introdotta in Java 8 per superare le limitazioni precedenti, non ancora nativamente supportata in Clojure ma utilizzabile con interop.
Accanto a queste scelte, ci sono librerie per parsing, formattazione e aritmetica di date, come clj-time.format
. E’ importante gestire fusi orari e Daylight Saving Time, che possono incidere sui calcoli delle date.