In [5]:
def nextDay(year, month, day):
	
	if day <30:
		return year, month, day + 1
	else:
		if month < 12:
			return year, month +1, 1
		else:
			return year + 1, 1, 1

In [7]:
nextDay(2017, 8, 15)


Out[7]:
(2017, 8, 16)

In [15]:
def nextDay(year, month, day):
	
	if day <30:
		return year, month, day + 1
	else:
		if month < 12:
			return year, month +1, 1
		else:
			return year + 1, 1, 1

In [16]:
def dateIsBefore(year1,month1,day1,year2,month2,day2):
	if year1 < year2:
		return True
	elif year1 <= year2 and month1 < month2:
		return True
	if year1 <= year2 and month1 <= month2 and day1 < day2:
		return True
	else:
		return False

In [17]:
"""
def dateIsBefore(year1,month1,day1,year2,month2,day2):
	if year1 < year2:
		return True
	if year1==year2:
		if month1<month2:
			return True
		if month1 == month2:
			return day1 < day2
	return False
"""


Out[17]:
'\ndef dateIsBefore(year1,month1,day1,year2,month2,day2):\n\tif year1 < year2:\n\t\treturn True\n\tif year1==year2:\n\t\tif month1<month2:\n\t\t\treturn True\n\t\tif month1 == month2:\n\t\t\treturn day1 < day2\n\treturn False\n'

In [21]:
def daysBetweenDates(year1,month1,day1,year2,month2,day2):
    assert not dateIsBefore(year2,month2,day2,year1,month1,day1)
    days=0
    while dateIsBefore(year1,month1,day1,year2,month2,day2):
        year1,month1,day1=nextDay(year1,month1,day1)
        days+=1
    return days

In [24]:
print daysBetweenDates(2015,12,3,2017,12,3)


720

In [ ]: