Timedelta class in Python

Overview:

  • The difference delta between two quantities of date or time is provided by the class datetime.timedelta. The difference could be positive or negative. 
  • The timedelta can be created in several ways:
  1. By using the timedelta constructor:

The timedelta constructor takes several arguments, which include weeks, days, hours, minutes, seconds, milliseconds and microseconds. The order in which these arguments are expected in the constructor could be different than the order stated in the previous sentence. All these arguments have a default value of zero. Hence by passing no values to the constructor of timedelta class a timedelta object that corresponds to a zero time difference is created.

                          Example 1:

import datetime

 

# Representing a duration of 1 day 1 second and 1 microsecond

t1 = datetime.timedelta(1, 1, 1)

 

# Representing a duration of 2 days 2 seconds and 2 microseconds

t2 = datetime.timedelta(2, 2, 2)

 

# Print the time difference between the second time duration and the first time duration

timeDiff = t2-t1

print(timeDiff)

 

Output:

1 day, 0:00:01.000001

 

2.As the result of a timedelta arithmetic operation

  • Timedelta objects can be added, subtracted, multiplied, divided and compared. In the Python example below two timedelta objects are added to produce another timedelta object.

        Example 2:

import datetime

 

# Two time durations are added and the result is printed

duration1 = datetime.timedelta(hours=3)

duration2 = datetime.timedelta(hours=1)

duration3 = duration1 + duration2

print("Duration3 = Duration1+Duration2")

print("Duration3 = %s"%(duration3))

 

# Two time durations are compared

print("First time duration is less than the second time duration:%s"%(duration1 < duration2))

 

Output:

Duration3 = Duration1+Duration2

Duration3 = 4:00:00

First time duration is less than the second time duration:False

 

 

Attributes of a datetime.timedelta object

Attribute

Description

timedelta.min

Represents the most negative timedelta object. A timedelta object with -999999999 days as the duration.

Any further increase by a microsecond will cause an overflow in the magnitude.

timedelta.max

Represents the most positive timedelta object. A timedelta object with duration of 999999999 days, 23 hours, 59 minutes, 59 seconds, 999999 microseconds. Any further addition of a microsecond will result in the overflow of the magnitude.

timedelta.resolution

Represents the smallest difference between two timedelta objects that are not equal. This is currently equal to  1 microsecond.

 

Python Functions/Operations supported on a timedelta object

Addition (+)

Adds two timedelta objects and returns the resultant timedelta object.

Subtraction(-)

Subtracts one timedelta object from another timedelta object and returns the resultant timedelta object.

Multiplication(*)

Multiplies one timedelta object by an integer or a floating-point number, and returns the resultant timedelta object.

Division(/)

Divides one timedelta object by another timedelta object and returns the resultant value as a floating-point number.

Divides one timedelta object by an integer or a floating-point number and returns the resultant value as a timedelta object.

Division(//)

Divides one timedelta object by another timedelta object, floor is computed on the quotient and returns the resultant value as an integer.

Divides the timedelta object by an integer and returns the result as a timedelta object.

Modulo Division (%)

Divides one timedelta object by another timedelta object and returns the remainder as the resultant timedelta object.

abs(timeDeltaObject)

Returns the magnitude of the time duration represented by the timedelta object.

str(timeDeltaObject)

Returns the time duration in the form of  n days,HH:MM:SS.[microseconds in 6 digits]

repr(timeDeltaObject)

Returns the string representation of the timedelta object in the form of the actual constructor call that creates the object.

 

 

Methods of a datetime.timedelta object

Method Name

Description

total_seconds()

Returns the duration represented by the timedelta object as number of seconds.

timedelta operations involving date, datetime objects:

It is worthwhile to note here that timedelta objects can be added with a datetime object or a date object to perform related arithmetic.

Example:

import datetime

 

# Create a time duration of one hour

timeDelta   = datetime.timedelta(hours=1)

 

# Create a date

today       = datetime.datetime(3019, 1, 20)

 

# Increase a time duration of one hour

oneAM       = today+timeDelta

 

print("Date : %s"%(today))

print("Date + 1 hour : %s"%(oneAM))

 

Output:

Date : 3019-01-20 00:00:00

Date + 1 hour : 3019-01-20 01:00:00


Copyright 2024 © pythontic.com