#coding=gbk
'''
1、计算输入日期与基准日期的差异天数
2、方法2 利用time包
'''
#输入一个日期,计算这个日期与 2018-03-12差多少天;
def count_days():
dt_1='2018-03-12'
dt_2=[int(i) for i in dt_1.split('-')]
yy,mm,dd=dt_2
#print('yy,mm,dd:',yy,mm,dd)
print('基准日期:',dt_1)
date_input=input('请输入日期:格式2018-01-01
')
dt=date_input.split('-')
dt=[int(i) for i in dt]
year,month,day=dt
print('year,month,day',date_input)
if year<yy or (year==yy and month<mm) or (year==yy and month==mm and day<dd):
print('输入日期必须大于基准日期,1970-3-12
请重新输入!
')
return None
if year==yy and day>=dd:
diff_year=0
diff_month=month-mm
diff_day=day-dd
elif year==yy and day<dd:
diff_year=0
diff_month=month-mm-1
diff_day=30-dd+day
elif year>=yy+1:
diff_year=year-yy-1
diff_month=12-mm-1+month
diff_day=30-dd+day
print('diff_year:%s,diff_month:%s,diff_day:%s'%(diff_year,diff_month,diff_day))
return diff_year*365+diff_month*30+diff_day
'''
if __name__=='__main__':
i=0
while i<5:
result=count_days()
if result:
print('差异天数为:%s天'%result)
i+=1
'''
#方法2:利用time包计算差异天数
import time
def isleap_year(year):
if (year%4==0 and year%100!=0) or year%400==0:
return 366
return 365
def count_days_1():
dt_1='2018-03-12'
date_input=input('请输入日期:格式2018-01-01
')
dt_format_1=time.strptime(dt_1,'%Y-%m-%d')
date_format=time.strptime(date_input,'%Y-%m-%d')
yy=int(dt_1.split('-')[0])
year=int(date_input.split('-')[0])
day_count=dt_format_1.tm_yday
date_count=date_format.tm_yday
if year==yy:
diff_day=date_count-day_count
return diff_day
elif year>=yy+1:
year_days=0
for i in range(yy,year):
year_days+=isleap_year(i)
print('year_days:',year_days)
diff_day=year_days-day_count+date_count
return diff_day
i=0
while i<4:
aa=count_days_1()
print('方法2计算的差异天数为:%s天'%aa)
i+=1