Bash:
Cálculo de una fecha en el futuro o el pasado
Cómo Hacerlo:
Aquí hay ejemplos de cómo calcular fechas en el futuro o pasado:
# Fecha de hoy
hoy=$(date '+%Y-%m-%d')
echo "Hoy es: $hoy"
# Calcula una fecha 5 días en el futuro
futuro=$(date -d "$hoy + 5 days" '+%Y-%m-%d')
echo "5 días en el futuro: $futuro"
# Calcula una fecha 5 días en el pasado
pasado=$(date -d "$hoy - 5 days" '+%Y-%m-%d')
echo "5 días en el pasado: $pasado"
Ejemplo de salida:
Hoy es: 2023-04-01
5 días en el futuro: 2023-04-06
5 días en el pasado: 2023-03-27
Profundización
Históricamente, calcular fechas era más complicado en versiones anteriores de Bash y sistemas Unix. date
es un comando estándar en Unix y sistemas tipo Unix que se ha simplificado con el tiempo. El comando date
con la opción -d
(o --date
) en GNU coreutils permite hacer aritmética de fechas fácilmente, incluyendo años bisiestos y cambios de mes.
Existen alternativas como dateutils
, una biblioteca de herramientas que ofrece funciones más avanzadas para manejar fechas y tiempos si se necesita más complejidad.
Detalles de implementación:
- Usar
+%Y-%m-%d
para obtener el formato de fecha estándar (año-mes-día). - Asegúrate de que la zona horaria esté correctamente configurada en el sistema para obtener resultados precisos.
- Bash no tiene manejo integrado de fechas, por lo que dependemos de herramientas externas como
date
.
Ver También
- GNU coreutils
date
: https://www.gnu.org/software/coreutils/manual/html_node/date-invocation.html - Documentación de
dateutils
: http://www.fresse.org/dateutils/ - Información sobre la zona horaria en sistemas Unix: https://www.thegeekstuff.com/2010/09/change-timezone-in-linux/