Calcolo di una data futura o passata

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.

Vedere anche: