Comparing dates is quite easy in Python. Dates can be easily compared using comparison operators (like <, >, <=, >=, != etc.). Let’s see how to compare dates with the help of datetime module using Python.
Code #1 : Basic
Python3
# Simple Python program to compare dates # importing datetime module import datetime # date in yyyy/mm/dd format d1 = datetime.datetime( 2018 , 5 , 3 ) d2 = datetime.datetime( 2018 , 6 , 1 ) # Comparing the dates will return # either True or False print ("d1 is greater than d2 : ", d1 > d2) print ("d1 is less than d2 : ", d1 < d2) print ("d1 is not equal to d2 : ", d1 ! = d2) |
Output :
d1 is greater than d2 : False d1 is less than d2 : True d1 is not equal to d2 : True
Code #2 : Sorting dates One of the best ways to sort a group of dates is to store them into a list and apply sort() method. This will sort all the dates which are available in the list. One can store the date class objects into the list using append() method.
Python3
# Python program to sort the dates # importing datetime module from datetime import * # create empty list group = [] # add today's date group.append(date.today()) # create some more dates d = date( 2015 , 6 , 29 ) group.append(d) d = date( 2011 , 4 , 7 ) group.append(d) # add 25 days to the date # and add to the list group.append(d + timedelta(days = 25 )) # sort the list group.sort() # print the dates for d in group: print (d) |
Output :
2011-04-07 2011-05-02 2015-06-29 2018-05-24
Code #3 : Comparing Dates Compare two date class objects, just like comparing two numbers.
Python3
# importing datetime module from datetime import * # Enter birth dates and store # into date class objects d1, m1, y1 = [ int (x) for x in input ("Enter first" " person 's date(DD/MM/YYYY) : ").split(' / ')] b1 = date(y1, m1, d1) # Input for second date d2, m2, y2 = [ int (x) for x in input ("Enter second" " person 's date(DD/MM/YYYY) : ").split(' / ')] b2 = date(y2, m2, d2) # Check the dates if b1 = = b2: print ("Both persons are of equal age") elif b1 > b2: print ("The second person is older") else : print ("The first person is older") |
Output :
Enter first person's date(DD/MM/YYYY) : 12/05/2017 Enter second person's date(DD/MM/YYYY) : 10/11/2015 The second person is older
CODE 4: Using timedelta.
APPROACH:
This code compares two date objects in Python using the date and timedelta modules. It uses the subtraction operator to calculate the difference between the dates, and then compares the result to a timedelta object with a value of 0 to determine whether one date is greater than, less than, or equal to the other. The if statements are used to print the results of the comparisons.
ALGORITHM:
1.Import the datetime and timedelta modules.
2.Create two date objects d1 and d2 with year, month and day values.
3.Calculate the difference between the dates using the subtraction (-) operator and compare it to timedelta(0) to determine whether d1 is greater than
Python3
from datetime import date, timedelta d1 = date( 2022 , 4 , 1 ) d2 = date( 2023 , 4 , 1 ) # Comparing dates if d1 - d2 > timedelta( 0 ): print ( "d1 is greater than d2 : " , True ) else : print ( "d1 is greater than d2 : " , False ) if d1 - d2 < timedelta( 0 ): print ( "d1 is less than d2 : " , True ) else : print ( "d1 is less than d2 : " , False ) if d1 ! = d2: print ( "d1 is not equal to d2 : " , True ) else : print ( "d1 is not equal to d2 : " , False ) |
d1 is greater than d2 : False d1 is less than d2 : True d1 is not equal to d2 : True
Time complexity: O(1)
The time complexity of the subtraction (-) operator between two date objects is O(1).
Auxiliary Space: O(1)
The space complexity of this code is O(1) because only two date objects and one timedelta object are used, and the memory usage does not increase with the input size.