计算时间差
''' 计算时间差 ''' import time import math import datetime from datetime import timedelta from calendar import monthrange """时间格式化""" def date_format(date): # 时间字符串解析为时间元组 date = time.strptime(date, "%Y%m%d") # 时间戳转换成datetime对象 date = datetime.datetime(date[0], date[1], date[2]) return date """计算天数差值方法20191127-20181127""" def Ddate(date, date1): date =date_format(date) date1 = date_format(date1) if date == date1: Ddatevalue=1 # 时间相等取1 else: Ddatevalue = abs((date - date1).days)# 取绝对值 return Ddatevalue """计算月份差值方法yyyymmdd""" def Mdate(date, date1): Mdatevalue =Ddate(date, date1) Mdatevalue = math.ceil(Mdatevalue / 30) return Mdatevalue """计算月份差值方法yyyymm""" def mdate(date, date1): date = time.strptime(date, "%Y%m%d") date1 = time.strptime(date1, "%Y%m") mdatevalue = (date[0]-date1[0])*12+(date[1]-date1[1]) if mdatevalue==0: mdatevalue=1 else: mdatevalue=mdatevalue print('月份差:', mdatevalue) """计算月份差值方法yyyymm""" def mdate2(date, date1): date = time.strptime(date, "%Y%m") date1 = time.strptime(date1, "%Y%m") mdatevalue = (date[0]-date1[0])*12+(date[1]-date1[1]) if mdatevalue==0: mdatevalue=1 else: mdatevalue=mdatevalue print('月份差:', mdatevalue) def monthdelta(d1, d2): delta = 0 while True: mdays = monthrange(d1.year, d1.month)[1] d1 += timedelta(days=mdays) if d1 <= d2: delta += 1 else: break return delta """计算年份差值方法yyyy""" def Ydate(date, date1): date = date[0:4] date1 = date1[0:4] if date==date1: Ydatevalue =1 else: Ydatevalue = abs(int(date) - int(date1)) print('年份差:', Ydatevalue) return Ydatevalue if __name__ == "__main__": # print(Mdate('20190228','20191220')) # mdate(date,date1) # d1 = time.strptime('201911', "%Y%m") # monthdelta(d1,'201802') print(mdate('20221231','202210')) # < PD01AR01 > 2019 - 12 - 20 < / PD01AR01 > # < PD01AR02 > 2019 - 02 - 28 < / PD01AR02 > # print('天数差为:', Ddate('20191020','20191228')) # print('天数差为:', Ddate('20190228','20191226')) # print('天数差为:', Ddate('20191228','20191028')) # print('天数差为:', Ddate('20191228','20191128')) # print('天数差为:', Ddate('20191228','20190630')) # print(mdate2('201910','201809')) # print('天数差为:', Ddate('20191220','20190228')) # mdate('20191127', '201908') # print(Mdate('20191228','20181120')) # print(Mdate('20220528','20210630')) # print(Mdate('20220528','20211130')) # print(Mdate('20220528','20220302')) # print(Mdate('20191221','20180829')) # print(Mdate('20191228','20141227')) # print(Mdate('20191228','20190928')) # print(date_format('20191101')) # print(342/12) # print(monthdelta('202006','201801'))