計算兩個日期差
方法一
#日期練習題;計算日期差,方法一:直接減 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