欢迎点击「算法与编程之美」↑关注我们!
本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。
首先,先用简单的方法,那就是引用python第三方库中的功能直接计算出结果。引用datetime库。
fromdatetime import timedelta, datetime
a,b,c =map(int,input("请输入开始时间(以.间隔):").split("."))
d,e,f =map(int,input("请输入结束时间(以.间隔):").split("."))
a =datetime(d,e,f) - datetime(a,b,c)
print(a)
图2.1 运行结果
year,month,day = map(int,input("请输入开始年月日(以.隔开):").split("."))
if year % 100 == 0:
if year % 400 == 0:
kaishi = 366-(day2[month - 1]+ day)
if year % 400 != 0:
kaishi = 365-(day1[month - 1]+ day)
else:
if year % 4 == 0:
kaishi = 366-(day2[month - 1]+ day)
else:
kaishi = 365-(day1[month - 1]+ day)
year1,month1,dayy =map(int,input("请输入结束年月日(以.隔开):").split("."))
if year % 100 == 0:
if year1 % 400 == 0:
jieshu = day2[month1 - 1] +dayy
if year1 % 400 != 0:
jieshu = day1[month1 - 1] +dayy
else:
if year1 % 4 == 0:
jieshu = day2[month1 - 1] +dayy
else:
jieshu = day1[month1 - 1] +day
runnian = 0
pingnian = 0
if year != year1:
for i in range(year + 1,year1):
if i % 100 == 0:
if i % 400 == 0:
runnian += 1
else:
pingnian += 1
else:
if i % 4 == 0:
runnian += 1
else:
pingnian += 1
zongday = runnian*366 +pingnian*365 + jieshu + kaishi
这里先给runnian和pingnian赋值为0,当开始与结束年份不同时,用for循环判断两个年份之间的年份的闰年和平年,分别加在runnian和pingnian上,最后把中间每年的天数加起来(包括闰年天数,平年天数,开始一年剩余的天数,最后一年剩余的天数),得到总和zongday。
else:
if year1 %100 == 0:
if year1 % 400 == 0:
zongday = jieshu -(366-kaishi)
else:
zongday = jieshu - (365 -kaishi)
else:
if year1 % 4 == 0:
zongday = jieshu - (366 -kaishi)
else:
zongday = jieshu - (365 - kaishi)
print("两时间间隔%d天"%zongday)
这是当两个年份相同时,依然需要判断平闰年,用结束时间过的天数减开始时间过的天数就得到两日期的差,得到zongday。
图2.2 运行结果
总结
实习编辑 | 贾婧媛
责 编 | 李和龙
where2go 团队
微信号:算法与编程之美

长按识别二维码关注我们!
温馨提示:点击页面右下角“写留言”发表评论,期待您的参与!期待您的转发!