Skip to content
Advertisement

Finding difference in day between today’s date and a entered date

I am currently trying to construct a function that takes a date string and returns the number of days from that date until now. It will return 0 if it detects that the format is wrong, with the input date string format being Day/Month/Year (e.g. 12/3/21). The number should be negative if it is a past date (e.g. today is 14/3/21, the input date is 3/3/21, the function should return -11). This is my code so far but it keeps returning 0:

from datetime import datetime
from datetime import date

def convert_date(input_date):
    try:
        current_date = date.today()
        
        d1 = datetime.strptime(input_date, '%d/%m/%y')
        d2 = datetime.strptime(current_date, '%d/%m/%y')
        delta = d1 - d2
        return delta.day
    
    except:
        return 0

I am very unsure on what I have done wrong, as I have done a lot of research but have not found a solution. Hopefully someone can provide further clarification, thanks

(Also i am using the Datetime package)

Advertisement

Answer

These are basics and you need to understand datetime module well. Hope this solves your problem.

from datetime import datetime


def convert_date(input_date):
    try:
        current_date = datetime.today()

        d1 = datetime.strptime(input_date, '%d/%m/%y')

        delta = d1 - current_date
        return delta.days
    except ValueError:
        return 0
User contributions licensed under: CC BY-SA
2 People found this is helpful
Advertisement