Calcul d'une date future ou passée

Clojure:
Calcul d'une date future ou passée

Comment faire :

;; Ajoutons 3 jours à aujourd'hui
(require '[java-time :as jt])

(def today (jt/local-date))
(def in-three-days (jt/plus-days today 3))

(println "Aujourd'hui, c'est :" today)
(println "Dans trois jours, ce sera :" in-three-days)
;; Soustrayons 2 semaines de la date courante
(require '[java-time :as jt])

(def two-weeks-ago (jt/minus-weeks (jt/local-date) 2))

(println "Il y a deux semaines, c'était :" two-weeks-ago)

Plongée en profondeur

Calculer une date dans le futur ou le passé n’est pas un concept nouveau. L’homme a toujours eu besoin de mesurer et de prévoir le temps. En informatique, cette fonctionnalité est essentielle pour tout, de la simple planification d’un rappel à la programmation de transactions financières.

Historiquement, les programmeurs utilisaient des structures et des fonctions basiques de manipulation de temps, souvent avec des résultats imprévisibles à cause des complexités des calendriers et des fuseaux horaires. Ainsi, des bibliothèques robustes telles que java.time que Clojure utilise à présent, ont été développées.

Alternativement, Clojure permet aussi l’utilisation de bibliothèques externes telles que ‘clj-time’, une écharpe autour de Joda-Time, mais ‘java.time’ est devenu la solution privilégiée car elle est plus moderne et intégrée à Java 8 et versions ultérieures.

Concernant l’implémentation, il est impératif de gérer correctement les fuseaux horaires et les particularités du calendrier (comme les années bissextiles) pour éviter des erreurs. La bibliothèque java-time traite ces subtilités pour vous.

Voir aussi