【Python】计算两个日期/时间相差多少天/天数

 

 

复制代码
def calcDateDiff(startDate: str, endDate: str, dateFormat='%Y/%m/%d'):
    """
    计算两个日期相差多少天
    :param startDate: 开始日期 eg: '2020/03/25'
    :param endDate: 结束日期 eg: '2020/03/30'
    :param dateFormat: startDate和endDate 的 日期格式 默认 '%Y/%m/%d'
    :return: 相差天数 eg:5
    """
    # 1、日期转换为 %Y%m%d 格式
    startDate = time.strftime('%Y%m%d', time.localtime(time.mktime(time.strptime(startDate, dateFormat))))
    endDate = time.strftime('%Y%m%d', time.localtime(time.mktime(time.strptime(endDate, dateFormat))))

    # 2、开始计算相差天数
    start = startDate
    end = endDate
    old = datetime.datetime(int(start[0:4]), int(start[4:6]), int(start[6:8]))
    now = datetime.datetime(int(end[0:4]), int(end[4:6]), int(end[6:8]))
    count = (now - old).days
    return count


if __name__ == '__main__':
    # 2020/03/25-2020/03/30 相差5天
    print(f"2020/03/25-2020/03/30 相差{calcDateDiff('2020/03/25', '2020/03/30')}天")

    # 20200101-20200110 相差9天
    print(f"20200101-20200110 相差{calcDateDiff('20200101', '20200110','%Y%m%d')}天")

    # 2020-02-12-2020-02-10 相差-2天
    print(f"2020-02-12-2020-02-10 相差{calcDateDiff('2020-02-12', '2020-02-10','%Y-%m-%d')}天")
复制代码

 

posted @   淡怀  阅读(1914)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
历史上的今天:
2019-08-27 【Java】+字符中的字符替换
点击右上角即可分享
微信分享提示