ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

计算时间差

2022-08-11 11:00:54  阅读:116  来源: 互联网

标签:date1 Mdate mdatevalue 时间差 print 计算 date Ddate


'''
   计算时间差
'''

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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有