Cálculo de una fecha en el futuro o el pasado

Clojure:
Cálculo de una fecha en el futuro o el pasado

How to:

Para trabajar con fechas en Clojure, usaremos la librería clj-time, una envoltura para Joda-Time. La instalamos agregando [clj-time "0.15.2"] a nuestro archivo project.clj. Aquí hay ejemplos simples:

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

;; Sumar días a una fecha
(def fecha-actual (t/now))
(def futuro (t/plus fecha-actual (t/days 10)))

;; Restar días a una fecha
(def pasado (t/minus fecha-actual (t/days 10)))

;; Imprimir fechas
(println (c/to-string fecha-actual)) ;; "2023-03-31T18:04:21.236Z"
(println (c/to-string futuro))       ;; "2023-04-10T18:04:21.236Z"
(println (c/to-string pasado))       ;; "2023-03-21T18:04:21.236Z"

Deep Dive:

Calcular fechas es vital desde que los sistemas informáticos empezaron a manejar eventos y tareas programados. Antes teníamos que hacerlo manualmente, pero con evolución de las bibliotecas de manejo de tiempo como Joda-Time y java.time, es mucho más sencillo.

Alternativas a clj-time incluyen trabajar directamente con java.time en Clojure, o bibliotecas como tick y time-literals. Cada una tiene sus ventajas, pero clj-time es muy popular por su capacidad de trabajar con la familiar Joda-Time.

Al calcular fechas en el pasado y futuro, debemos tener en cuenta zonas horarias y cambios como el horario de verano. clj-time lo maneja elegantemente, mientras que las operaciones manuales requerirían conocimiento detallado de estos aspectos.

See Also: