table = [[0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], [0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]]
reference = [365, 366]
def whether_leap(year):
return (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0)
def days_count_in_year(year, month, day): # 某个日期是本年中的多少天
count = day
month -= 1
r = whether_leap(year)
while month > 0:
count += table[r][month]
month -= 1
return count
if __name__ == '__main__':
while True:
try:
n1 = int(input())
d1 = n1 % 100
n1 = (n1 - d1) // 100
m1 = n1 % 100
y1 = (n1 - m1) // 100
n2 = int(input())
d2 = n2 % 100
n2 = (n2 - d2) // 100
m2 = n2 % 100
y2 = (n2 - m2) // 100
#三种情况
if y1 == y2 and m1 == m2:
if (abs(d1 - d2) == 1):
print("2")
else:
print(abs(d1 - d2)+1)
elif y1 == y2 and m1 != m2:
count1 = days_count_in_year(y1, m1, d1)
count2 = days_count_in_year(y2, m2, d2)
print(abs(count1 - count2)+1)
elif y1 != y2:
# 比较出大日期和小日期
if y1 > y2:
b_y = y1
s_y = y2
b_m = m1
s_m = m2
b_d = d1
s_d = d2
else:
b_y = y2
s_y = y1
b_m = m2
s_m = m1
b_d = d2
s_d = d1
count = days_count_in_year(b_y, b_m, b_d)
b_y -= 1
while (b_y >= s_y):
r = whether_leap(b_y)
count += reference[r]
b_y -= 1
count -= days_count_in_year(s_y, s_m, s_d)
print(count+1)
except:
break
KY111 日期差值(Python) *多组输入且多行一组
最新推荐文章于 2024-06-20 17:54:56 发布