Difference between two dates in Python

Difference between two dates in Python

Use - to get the difference between two datetime objects and take the days member.

from datetime import datetime

def days_between(d1, d2):
    d1 = datetime.strptime(d1, %Y-%m-%d)
    d2 = datetime.strptime(d2, %Y-%m-%d)
    return abs((d2 - d1).days)

Another short solution:

from datetime import date

def diff_dates(date1, date2):
    return abs(date2-date1).days

def main():
    d1 = date(2013,1,1)
    d2 = date(2013,9,13)
    result1 = diff_dates(d2, d1)
    print {} days between {} and {}.format(result1, d1, d2)
    print (Happy programmers day!)

main()

Difference between two dates in Python

I tried the code posted by larsmans above but, there are a couple of problems:

1) The code as is will throw the error as mentioned by mauguerra
2) If you change the code to the following:

...
    d1 = d1.strftime(%Y-%m-%d)
    d2 = d2.strftime(%Y-%m-%d)
    return abs((d2 - d1).days)

This will convert your datetime objects to strings but, two things

1) Trying to do d2 – d1 will fail as you cannot use the minus operator on strings and
2) If you read the first line of the above answer it stated, you want to use the – operator on two datetime objects but, you just converted them to strings

What I found is that you literally only need the following:

import datetime

end_date = datetime.datetime.utcnow()
start_date = end_date - datetime.timedelta(days=8)
difference_in_days = abs((end_date - start_date).days)

print difference_in_days

Leave a Reply

Your email address will not be published. Required fields are marked *