思路:
如果循环条件写成:
start <= end
当日期等于9999 12 31,任然可以进入循环,但是就超出了datetime可以表示的年数了。
import datetime
start = datetime.datetime(1900, 1, 1)
end = datetime.datetime(9999, 12, 31)
cnt = 0
start += datetime.timedelta(days=1)
while start < end:
year = start.year
y4 = year % 10
y3 = year // 10 % 10
y2 = year // 100 % 10
y1 = year // 1000
y_sum = y1 + y2 + y3 + y4
month = start.month
m2 = month % 10
m1 = month // 10
m_sum = m1 + m2
day = start.day
d2 = day % 10
d1 = day // 10
d_sum = d1 + d2
if y_sum == m_sum + d_sum:
cnt += 1
start += datetime.timedelta(days=1)
print(cnt)
思路
一次性做对