Por el uso tan amplio de Python es realmente necesario poder sumar y restar días en Python, y para eso podemos emplear la librería datetime.
En situaciones donde necesitamos llevar un seguimiento de la fecha y la hora, podemos emplear este modulo que es el encargado de de manipular fechas y horas, y está integrado en la biblioteca estándar de Python.
Las clases con las que cuenta el modulo son:
NOMBRE | DESCRIPCIÓN | |
1. | fecha | Muestra la fecha según el calendario georgiano con atributos como año, mes y día. |
2. | hora | Muestra el tiempo, independientemente de cualquier día en particular, con atributos como hora, minuto, segundo, microsegundo y tzinfo. |
3. | fecha y hora | Es una colección de fecha y hora con los atributos año, mes, día, hora, minuto, segundo, microsegundo y tzinfo. |
4. | timedelta | Se utiliza para manipular la fecha. |
5. | tzinfo | Proporciona información sobre la zona horaria. |
TIMEDELTA para sumar y restar
Para sumar o restar fecha, usamos la función timedelta() ya que permite realizar operaciones aritméticas con las fecha como sumar o restar y es fácilmente implementable.
La sintaxis es la siguiente
class datetime.timedelta(días = 10, segundos = 40, microsegundos = 10, milisegundos = 60, minutos = 10, horas = 4, semanas = 8)
Nota: si no especificamos por defecto, toma el entero como un día.
Sumar 10 días
from datetime import date, timedelta
hoy = date.today()
print("hoy es : ", hoy)
td = timedelta(10)
print("Dentro de 10 diás estaremos a : ", hoy + td)
Restar 1 día
from datetime import date, timedelta
hoy = date.today()
print("hoy es : ",hoy)
print("ayer fue : ",ayer - timedelta(1))
Sumar tiempos específicos
from datetime import datetime, timedelta
ahora = datetime.now()
print("Current Date and time :- ", curr)
nuevo = timedelta(days = 10, seconds = 40,
microseconds = 10,
milliseconds = 60,
minutes = 10, hours = 4,
weeks = 8)
print("nuevo tiempo calculado :- ", nuevo + new_datetime)
from datetime import datetime, timedelta
ahora = datetime.now()
# printing initial_date
print ("fecha inicio", str(ahora))
# Calculamos fechas futuras
en_dos_anos = ahora + \
timedelta(days = 730)
en_dos_dias = ahora + \
timedelta(year = 2)
print('en dos años estaresmos a:', str(en_dos_anos))
print('en dos dias será:', str(en_dos_dias))
Y hasta aquí, espero sinceramente que este articulo sirva de ayuda a alguien.
Y todo como el diamante antes que luz, fue carbón.
J. Martí