Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

Python – Timedelta object with negative values

  • Last Updated : 20 Aug, 2021

In Python, there is the Datetime library which is the in-built library under which timedelta() function is present. Using this function we can find out the future date and time or past date and time. In timedelta() object delta represents the difference between two dates or times.

Syntax:

 Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.  

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning - Basic Level Course

datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minute=0, hours=0, weeks=0)



All the arguments are optional and are 0 by default. We can pass both positive and negative values in the arguments.

Let’s see some examples for better understanding of the topic.

Example 1: Finding estimate date by using timedelta object with negative values.

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)

Output:

Current date is: 2021-03-24
Resultant time after using timedelta object is: 2019-10-07

The above example shows the current date and the date after using timedelta object, in the above example we had passed days=-534 as a parameter in timedelta object. The negative value represents the past whereas the positive value represents the future, in the above code, we had passed -534 days this means that we are getting a date that is 534 days back from today’s date.

Example 2: Finding estimate time by using timedelta object with negative values.

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)

Output:

Current time is: 15:53:37.019928
Resultant time after using timedelta object is: 03:38:37.019928

The above example shows the current time and the time after using timedelta object, in the above code we had passed hours=-12 and minutes=-15 that means we are getting resultant time i.e, before 12 hours and 15 minutes from now onwards.

Example 3: Another way of finding estimate time by using timedelta object with negative values.

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}')

Output:

Current time is: 15:52:59.538796
Resultant time after using timedelta object is: 00:27:59.538796

In the above example, we had passed the positive values in the timedelta object, but they are behaving like negative values because while finding the required_time at line 9 in the above code we had used the negative sign with timedelta object so the values of the parameters which are passed positive become negative automatically, and we get resultant time i.e, before 15 hours and 25 minutes from now onwards.

Example 4: Finding estimate date and time by using timedelta object with negative values.

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}')

Output:

Current time is: 2021-03-24 15:51:33.024268
Resultant time after using timedelta object is: 2021-03-13 00:25:39.024268

The above example shows the current date and time and resultant date and time after using timedelta object, in the above code we are passing weeks=-1 days=-4, hours=-15, minutes=-25, seconds=-54 in the timedelta object means we are getting estimated date and time after using timedelta object is 1 week 4 days 15 hours 25 minutes and 54 seconds before from now onwards.




My Personal Notes arrow_drop_up
Recommended Articles
Page :