En este tutorial explicamos cómo trabajar con fechas en Python. Te decimos el código para restar fechas, sumar días, restar semanas, horas, etc. Todo eso se hace con la librería datetime incluida en Python.
Resumen rápido Python fechas.
En este resumen rápido explicamos los comandos para trabajar con fechas en Python, más adelante dejamos ejemplos por si quieres más detalles.
La documentación oficial aquí. https://docs.python.org/3/library/datetime.html
Primero se importa la siguiente librería:
import datetime from datetime import date from datetime import timedelta
Para la fecha de hoy usamos:
hoy = date.today()
Para crear una fecha cualquiera, usamos el siguiente comando que tiene como parámetros (Año, Mes, Día).
d = date(2022, 5, 21)
Para restar dos fechas dando como resultado el número de días, puede ser negativo. (No se pueden sumar dos fechas, solo sumarle días a una fecha).
d1 = date(2022, 5, 21) d2 = date(2022, 5, 16) resta = d1 – d2
Para restar y sumar días a una fecha se usa la función timedelta, que puede tener periodos de tiempo como semanas (weeks), días (days), minutos (minutes), etc. En este caso, creamos un timedelta de 3 días.
d1 = date(2022, 5, 21) dias = datetime.timedelta(days=3) resta = d1 – dias
La función timedelta tiene los siguientes parámetros, que por default tienen un valor de cero.
- weeks, número de semanas.
- days, número de días.
- hours, número de horas.
- minutes, número de minutos.
- seconds, número de segundos.
- milliseconds, número de milisegundos.
- microseconds, número de microsegundos.
NOTA:
Estos parámetros se convierten a unidades mayores. Por ejemplo, si escribimos 85 minutos al imprimir el resultado veremos 1:25:00 (una hora 25 minutos).
Excepto en los días y las semanas, siempre nos imprimirá los días. Por ejemplo, una semana se convierte a 7 días. Pero 13 días, siguen siendo 13 días, sin convertir a semanas.
Restar dos fechas en Python usando datetime.
En el resumen rápido para datetime, ya se explicaron que comandos se usan, aquí haremos un ejemplo para dejarlo más claro y ver ciertos detalles importantes.
Vamos a introducir dos fechas y las vamos a restar. Imprimiremos el resultado para ver si es correcto.
import datetime from datetime import date from datetime import timedelta d1 = date(2022, 4, 21) d2 = date(2022, 4, 12) print(d1-d2) ## 9 Días print(d2-d1) ## -9 Días d1 = date(2022, 5, 10) d2 = date(2022, 4, 12) print(d1-d2) ##28 Días
En el código anterior vemos que podemos restar fácilmente dos fechas. Y podemos obtener números negativos indicando que la fecha que está restando es mayor.
Reemplazar fechas en Python.
Si por alguna razón queremos reemplazar el mes, el dia o el año de una fecha podemos usar la función replace.
import datetime from datetime import date from datetime import timedelta d1 = date(2022, 4, 21) print(d1) d2 = d1.replace(month=2) print(d2)
Tiene como parámetros:
- year, reemplaza el año.
- month, reemplaza el mes.
- day, reemplaza el día.
Sumar días a una fecha en Python.
Como lo vimos en el resumen rápido, con la función timedelta, podemos crear una cantidad de días, asi podremos restar y sumar días a una fecha.
import datetime from datetime import date from datetime import timedelta d1 = date(2022, 4, 2) dias7 = datetime.timedelta(days=7) dias30 = datetime.timedelta(days=30) d2 = d1 - dias7 d3 = d1 + dias30 print(f"Original: {d1}") print(f"Menos 7 días: {d2}") print(f"Más 30 días: {d3}")
En el código, tenemos una fecha base (d1) y creamos un timedelta de 7 días y otro de 30 días.
Luego a la fecha base le restamos 7 días y lo guardamos en d2.
Después a la fecha base le sumamos 30 días y lo guardamos en d3.
Al final imprimimos todo. Este tipo de formatos para imprimir puedes verlo en este tutorial:
Para más tutoriales de Python ve a este enlace.
Algunos temas que te pueden interesar: