Ruby:
Calcular una fecha en el futuro o pasado
Cómo hacerlo:
Ruby hace que jugar con fechas sea pan comido. Usa la clase Date
para manejos básicos o DateTime
si necesitas más precisión con horas, minutos y segundos. Aquí te muestro cómo hacerlo:
require 'date'
# Sumar días a una fecha
hoy = Date.today
futuro = hoy + 10
puts futuro # => YYYY-MM-DD
# Restar días a una fecha
pasado = hoy - 10
puts pasado # => YYYY-MM-DD
# Para DateTime, también puedes sumar horas y minutos
ahora = DateTime.now
futuro_detallado = ahora + (60 * 60 * 24) # Añade un día (en segundos)
puts futuro_detallado # => YYYY-MM-DDTHH:MM:SS+ZZ:ZZ
Y así, puedes calcular fechas hacia adelante o atrás tan fácil como un paseo por el parque.
Profundizando:
Antes, calcular fechas era una tarea peliaguda que requería tablas y almanaques. Con la evolución de los lenguajes de programación, esto se ha simplificado enormemente. Ruby, en particular, ofrece una biblioteca estándar (date
) que maneja muchas de las complejidades por nosotros.
Alternativas: Si Date
y DateTime
no cumplen con tus expectativas, siempre puedes usar gems como ActiveSupport::TimeWithZone
si estás en un contexto de Rails, que añade métodos como days.from_now
y days.ago
.
Los detalles de implementación sobre las fechas en Ruby son importantes. Date
y DateTime
manejan años bisiestos, diferentes zonas horarias y hasta cambios históricos del calendario (como la adopción del calendario Gregoriano).
Ver También:
- La documentación oficial de Ruby para Date y DateTime
ActiveSupport::TimeWithZone
si trabajas con Rails- Una biblioteca robusta para manipulación de fechas/tiempos: Chronic