计算两个日期差
方法一
#日期练习题;计算日期差,方法一:直接减 from datetime import datetime from datetime import date import time sum = 0 dates = ['2019-1-2','2019-1-27','2019-2-25','2019-3-25','2019-4-22','2019-5-20','2019-6-16','2019-7-19','2019-8-15','2019-9-10','2019-10-9','2019-10-31','2019-11-24'] for i in range(len(dates)-1): dateq = datetime.strptime(dates[i],'%Y-%m-%d').date() #字符串格式转为日期格式 dateh = datetime.strptime(dates[i+1],'%Y-%m-%d').date() #字符串格式转为日期格式 print(dateq,dateh,end='') #,end=''不换行,在行尾显示一个空格 datec =dateh -dateq #两个日期的差 print ('相隔:',datec.days) sum += datec.days print ("总相隔:",sum,"次数:",len(dates)-1) print("平均总相隔:%.2f" %(sum/(len(dates)-1)))
方法二
from datetime import datetime from datetime import date import time #日期练习题;计算日期差,方法二:使用__sub__()方法 sum = 0 dates = ['2019-1-2','2019-1-27','2019-2-25','2019-3-25','2019-4-22','2019-5-20','2019-6-16','2019-7-19','2019-8-15','2019-9-10','2019-10-9','2019-10-31','2019-11-24'] for i in range(len(dates)-1): dateq = datetime.strptime(dates[i],'%Y-%m-%d').date() #字符串格式转为日期格式 dateh = datetime.strptime(dates[i+1],'%Y-%m-%d').date() #字符串格式转为日期格式 print(dateq,dateh,end='') #,end=''不换行,在行尾显示一个空格 datec =dateh.__sub__(dateq) #两个日期的差 print ('相隔:',datec.days) sum += datec.days print ("总相隔:",sum,"次数:",len(dates)-1) print("平均总相隔:%.2f" %(sum/(len(dates)-1)))
结果一致
2019-01-02 2019-01-27相隔: 25 2019-01-27 2019-02-25相隔: 29 2019-02-25 2019-03-25相隔: 28 2019-03-25 2019-04-22相隔: 28 2019-04-22 2019-05-20相隔: 28 2019-05-20 2019-06-16相隔: 27 2019-06-16 2019-07-19相隔: 33 2019-07-19 2019-08-15相隔: 27 2019-08-15 2019-09-10相隔: 26 2019-09-10 2019-10-09相隔: 29 2019-10-09 2019-10-31相隔: 22 2019-10-31 2019-11-24相隔: 24 总相隔: 326 次数: 12 平均总相隔:27.17