在学校的19年,练习册上的加分题总是习惯性的视而不见,作业做完就好,课文不要求背诵就不会多看一眼。谁想到,工作三年开始自学python,竟然默默写起了选做题。想想总有一丝丝诙谐,原来为自己学真的会有所不同。特此贴出这么纪念性的一题,以示纪念。
# Assume that the birthday and current date are correct dates (and no time travel).
def daysBetweenDates(year1, month1, day1, year2, month2, day2):
years = list(range(year1,year2+1))
if len(years) == 1:
return toLastDay(year1,month1,day1) - toLastDay(year2,month2,day2)
else:
daysInYears = 0
for y in years[1:]:
daysInYears = daysInYears + toLastDay(y,1,1)
if len(years) == 2:
return toLastDay(year1,month1,day1) + daysInYears - toLastDay(year2,month2,day2)
return toLastDay(year1,month1,day1) + daysInYears - toLastDay(year2,month2,day2) - 1
def toLastDay(year, month, day):
if isLeapYear(year):
daysOfMonths = [ 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
else:
daysOfMonths = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
n = 0
for m in list(range(month,12+1)):
n = n + daysOfMonths[m-1]
return n - day + 1
def isLeapYear(year):
return year%4==0