日期差计算:
https://riqicha.51240.com/?kaishi=2018-05-21-00-00-00&jieshu=2019-01-22-00-00-00
#判断闰年
def eqrun(year):
if (year % 4) == 0:
if (year % 100) == 0:
if (year % 400) == 0:
return True # 整百年能被400整除的是闰年
else:
return False
else:
return True # 非整百年能被4整除的为闰年
else:
return False
#计天数
def tianshu(year,month,day):
return{
1: lambda day: day,
2:lambda day:31+day,
3:lambda day:31+29+day,
4:lambda day:31+29+31+day,
5:lambda day:31+29+31+30+day,
6:lambda day:31+29+31+30+31+day,
7:lambda day:31+29+31+30+31+30+day,
8:lambda day:31+29+31+30+31+30+31+day,
9:lambda day:31+29+31+30+31+30+31+31+day,
10:lambda day:31+29+31+30+31+30+31+31+30+day,
11:lambda day:31+29+31+30+31+30+31+31+30+31+day,
12:lambda day:31+29+31+30+31+30+31+31+30+31+30+day
}[month](day)
#判断同年
def eqyear(year1,year2):
if year1==year2:
return True
else:
return False
a=input("请输入日期一,格式为yyyymmdd,如20180521\n").strip()
b=input("请输入日期一,格式为yyyymmdd,如20190122\n").strip()
#
#判断间隔天数
year1=int(a[0:4])
month1=int(a[4:6])
day1=int(a[6:8])
year2=int(b[0:4])
month2=int(b[4:6])
day2=int(b[6:8])
cnt=0
while(eqyear(year1,year2)==False):
if eqrun(year1)==True:
cnt=cnt+366
year1=year1+1
else:
cnt=cnt+365
year1=year1+1
if eqyear(year1,year2)==True :
if eqrun(year1)==True:
day1s=tianshu(year1,month1,day1)
day2s=tianshu(year2,month2,day2)
else:
day1s=tianshu(year1,month1,day1)-1
day2s=tianshu(year2,month2,day2)-1
days=day2s-day1s+cnt
if month1==1 or month1==2:
days=days-1
if month2==1 or month2==2:
days=days+1
print("两日期相隔",days,"天")
运行效果如图: