Это кодирование, чтобы найти дни между датами. Кодирование не работает для случая, который я упомянул в качестве комментария в конце кода, pls указывают мою ошибку (примечание: (y1, m1, d1) -> дата начала и (y2, m2, d2) -> дата окончания)Расчет дней между двумя заданными датами
def days_between_dates(y2,m2,d2,y1,m1,d1):
days = 0
tot = 0
while not(y1==y2 and m1==m2 and d1==d2):
days = days + 1
d1 = d1+1
if((m1 == 4 or m1 == 6 or m1 == 9 or m1 == 11) and d1 == 30):
d1 = 0
m1 = m1+1
if(d1 == 31):
d1 = 0
m1 = m1+1
if (((y1%4)!=0) and m1 == 2 and d1==28):
d1 = 0
m1 = m1+1
else:
if(m1 == 2 and d1 == 29):
d1 = 0
m1 = m1+1
if(m1>12):
m1 = 1
y1 = y1 + 1
if(y1==y2 and m1==m2 and d1==d2):
return days
break
return days
print days_between_dates(2011,1,1,2010,1,1)
print days_between_dates(2013,1,1,2012,1,1)
#print days_between_dates(2012,2,29,2012,2,28)
Дубликат удален из SO. – showdev