Python: objeto Timedelta con valores negativos

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *