输入一个日期,计算这个日期与 2018-03-12差多少天;
#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