其他分享
首页 > 其他分享> > 计算时间差

计算时间差

作者:互联网

'''
   计算时间差
'''

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'))

  

标签:date1,Mdate,mdatevalue,时间差,print,计算,date,Ddate
来源: https://www.cnblogs.com/zjjing/p/16575275.html