Get the Amount of Days Between Two Dates in Python

1 min read 219 words

Let’s say that you have two dates:

"2019-01-29"
"2019-06-30"

How would you create a function that would return the number of days between these two dates?

Introducing the Datetime Package

Python comes with a built-in library called datetime.

We start by importing the date module.

from datetime import date

With this date module, we have access to an object format of the date type.

Writing our Function

Next, we should write our function that takes in two dates and returns the number of days between them.

from datetime import date

# date1 = str
# date2 = str
# return = int
def daysBetweenDates(date1, date2) -> int:

    # create list of of dates
    date1 = date1.split("-")
    date2 = date2.split("-")

    # create date objects from our list indices        
    date1_d = date(int(date1[0]), int(date1[1]), int(date1[2]))
    date2_d = date(int(date2[0]), int(date2[1]), int(date2[2]))
    
    # get the amount of days between our two dates
    days = (date1_d - date2_d).days
    
    # return an absolute (positive) integer of the days
    return abs(int(days)

We created lists of our dates to be able to use them in the `date` function:

print( "2019-06-30".split("-") )

['2019', '06', '30']

As the date function takes in integer values, we can now use the appropriate index locations of our date lists.

Testing our Function

Let’s test our function out:

print( daysBetweenDates("2019-01-29", "2019-06-30") )

# 152
Tags:
Andrew
Andrew

Andrew is a visionary software engineer and DevOps expert with a proven track record of delivering cutting-edge solutions that drive innovation at Ataiva.com. As a leader on numerous high-profile projects, Andrew brings his exceptional technical expertise and collaborative leadership skills to the table, fostering a culture of agility and excellence within the team. With a passion for architecting scalable systems, automating workflows, and empowering teams, Andrew is a sought-after authority in the field of software development and DevOps.

Tags