En Python, existe la biblioteca Datetime, que es la biblioteca integrada bajo la cual está presente la función timedelta() . Con esta función podemos averiguar la fecha y hora futuras o la fecha y hora pasadas. En timedelta(), el objeto delta representa la diferencia entre dos fechas u horas.
Sintaxis:
datetime.timedelta(días=0, segundos=0, microsegundos=0, milisegundos=0, minuto=0, horas=0, semanas=0)
Todos los argumentos son opcionales y son 0 por defecto. Podemos pasar valores positivos y negativos en los argumentos.
Veamos algunos ejemplos para una mejor comprensión del tema.
Ejemplo 1: Encontrar la fecha estimada usando el objeto timedelta con valores negativos.
Python3
# importing datetime and timedelta from # datetime module from datetime import datetime, timedelta # function to return date def get_date(current_date): # creating timedelta object with negative # values date_obj = timedelta(days=-534) # getting required date req_date = current_date + date_obj # splitting date from resultant datetime date = req_date.date() # returning date return date # main function if __name__ == '__main__': # getting current date and time current_datetime = datetime.now() # calling function to get the date resulted_date = get_date(current_datetime) # printing current date print('Current date is:', current_datetime.date()) # printing resultant date after using timedelta print('Resultant time after using timedelta object is:', resulted_date)
Producción:
Current date is: 2021-03-24 Resultant time after using timedelta object is: 2019-10-07
El ejemplo anterior muestra la fecha actual y la fecha después de usar el objeto timedelta, en el ejemplo anterior habíamos pasado días = -534 como parámetro en el objeto timedelta. El valor negativo representa el pasado, mientras que el valor positivo representa el futuro, en el código anterior, habíamos pasado -534 días, lo que significa que estamos obteniendo una fecha de 534 días atrás desde la fecha de hoy.
Ejemplo 2: Encontrar el tiempo estimado usando el objeto timedelta con valores negativos.
Python3
# importing datetime and timedelta from # datetime module from datetime import datetime, timedelta # function to return time def get_time(current_time): # creating timedelta object with negative # values time_obj = timedelta(hours=-12, minutes=-15) # getting required time req_time = current_time + time_obj # splitting time from resultant datetime time = req_time.time() # returning time return time # main function if __name__ == '__main__': # getting current date and time current_datetime = datetime.now() # calling function to get the time resulted_time = get_time(current_datetime) # printing current time print('Current time is:', current_datetime.time()) # printing resultant time after using timedelta print('Resultant time after using timedelta object is:', resulted_time)
Producción:
Current time is: 15:53:37.019928 Resultant time after using timedelta object is: 03:38:37.019928
El ejemplo anterior muestra la hora actual y la hora después de usar el objeto timedelta, en el código anterior habíamos pasado horas = -12 y minutos = -15, lo que significa que estamos obteniendo el tiempo resultante, es decir, antes de las 12 horas y 15 minutos a partir de ahora.
Ejemplo 3: otra forma de encontrar el tiempo estimado utilizando el objeto timedelta con valores negativos.
Python3
# importing datetime and timedelta from # datetime module from datetime import datetime, timedelta # function to return time def get_time(current_time): # creating timedelta object with negative # values time_obj = timedelta(hours=15, minutes=25) # getting required time req_time = current_time - time_obj # splitting time from resultant datetime time = req_time.time() # returning time return time # main function if __name__ == '__main__': # getting current date and time current_datetime = datetime.now() # calling function to get the time resulted_time = get_time(current_datetime) # printing current time print(f'Current time is: {current_datetime.time()}') # printing resultant time after using timedelta print(f'Resultant time after using timedelta object is: {resulted_time}')
Producción:
Current time is: 15:52:59.538796 Resultant time after using timedelta object is: 00:27:59.538796
En el ejemplo anterior, habíamos pasado los valores positivos en el objeto timedelta, pero se están comportando como valores negativos porque al encontrar el tiempo_requerido en la línea 9 en el código anterior, habíamos usado el signo negativo con el objeto timedelta, por lo que los valores de los parámetros los que pasan positivos se vuelven negativos automáticamente, y obtenemos el tiempo resultante, es decir, antes de 15 horas y 25 minutos a partir de ahora.
Ejemplo 4: encontrar la fecha y la hora estimadas mediante el uso del objeto timedelta con valores negativos.
Python3
# importing datetime and timedelta from datetime module from datetime import datetime,timedelta # function to return time def get_datetime(current_datetime): # creating timedelta object with negative values time_obj = timedelta(weeks=-1, days=-4, hours=-15, minutes=-25, seconds=-54) # getting required time and time req_time = current_datetime + time_obj # returning date and time return req_time # main function if __name__ == '__main__': # getting current date and time current_datetime = datetime.now() # calling function to get the date and time resulted_time = get_datetime(current_datetime) # printing current date and time print(f'Current time is: {current_datetime}') # printing resultant date and time after using timedelta print(f'Resultant time after using timedelta object is: {resulted_time}')
Producción:
Current time is: 2021-03-24 15:51:33.024268 Resultant time after using timedelta object is: 2021-03-13 00:25:39.024268
El ejemplo anterior muestra la fecha y hora actual y la fecha y hora resultantes después de usar el objeto timedelta, en el código anterior estamos pasando semanas = -1 días = -4, horas = -15, minutos = -25, segundos = -54 en el objeto timedelta significa que estamos obteniendo la fecha y hora estimadas después de usar el objeto timedelta es 1 semana 4 días 15 horas 25 minutos y 54 segundos antes de ahora en adelante.
Publicación traducida automáticamente
Artículo escrito por srishivansh5404 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA