Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Days Between - without using any library, incrementing day after day solution in Creative category for Days Between by zaviskapavel
def days_diff(date1, date2):
if date1[0]*10 ** 4 + date1[1]*100 + date1[2] < date2[0]*10 ** 4 + date2[1]*100 + date2[2]:
date_older = date1
date_newer = date2
else:
date_older = date2
date_newer = date1
days = 0
while date_older != date_newer:
date_older = increment(date_older)
days += 1
return days
def leap_year(year):
return True if year % 4 == 0 and year % 100 != 0 or year % 400 == 0 else False
def increment(date):
day = date[2]
month = date[1]
year = date[0]
if leap_year(year):
days = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
else:
days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
if day != days[month-1]:
day += 1
else:
day = 1
if month != 12:
month += 1
else:
month = 1
year += 1
return year, month, day
if __name__ == '__main__':
#These "asserts" using only for self-checking and not necessary for auto-testing
assert days_diff((1982, 4, 19), (1982, 4, 22)) == 3
assert days_diff((2014, 1, 1), (2014, 8, 27)) == 238
assert days_diff((2014, 8, 27), (2014, 1, 1)) == 238
Dec. 7, 2018
Comments: