#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\n\')
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\n请重新输入!\n\')
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\n\')
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