日期处理的方法有以下几点:
1、先考虑好年份是闰年还是平年,并且存储闰年和平年月份的天数(用二维列表实现)
2、这里规定日期-1小于日期-2,如果键入失误的话,将两个日期交换
3、拆分输入的日期为年、月、日(这里要注意,py不像c,c的除法是整除,而py的除法可能会得到浮点数,因此在除法过后应该加上int强制转换)
4、判断输入的日期是闰年还是平年,并且用index变量来存储得到的结果
5、如果日期-1小于日期-2,则一直循环进行以下操作(这里设置一个天数计数器,两个日期的差值就是计数器的值的大小):
将日期-1的天数加一,如果日期-1的天数超过了当月的最大天数,说明月份加一,并且天数重置为1;月份类似
6、输出相差的天数
month = [[0, 0], [31, 31], [28, 29], [31, 31], [30, 30], [31, 31], [
30, 30], [31, 31], [31, 31], [30, 30], [31, 31], [30, 30], [31, 31]]
# 首先对闰年和非闰年的天数进行统计
year_1 = int(input())
year_2 = int(input())
# 输入两个要计算的年份
if year_1 > year_2:
temp = year_1
year_1 = year_2
year_2 = temp
y_1 = int(year_1/10000)
m_1 = int(year_1 % 10000/100)
d_1 = year_1 % 100 # 分离出年月日
y_2 = int(year_2/10000)
m_2 = int(year_2 % 10000/100)
d_2 = year_2 % 100 # 分离出年月日
if y_1 % 4 == 0 and y_1 % 100 != 0 or y_1 % 400 == 0:
index_1 = 1
else:
index_1 = 0
if y_2 % 4 == 0 and y_2 % 100 != 0 or y_2 % 400 == 0:
index_2 = 1
else:
index_2 = 0
# 判断两个年份是不是闰年,并设定一个指数,随着闰年非闰年改变
day = 0
while y_1 < y_2 or m_1 < m_2 or d_1 < d_2:
d_1 = d_1+1
if d_1 == month[m_1][index_1]+1:
d_1 = 1
m_1 = m_1+1
# 如果天数超过列表中每个月的天数,那么就让月份进位,并且天数重置
if m_1 == 13:
y_1 = y_1+1
m_1 = 1
# 如果月份超过列表中的一年中的月数,那么让年份进位,并重置月份
day = day+1
print(day)