Python 计算两个日期相差的天数

有时候需要算两个日期相差多少天,如果两个日期相差大,真的去数肯定很麻烦,还得计算有的是有三十天,有的是三十一天,还有闰年和平年的区别。而这时候如果有一个方法或者函数,只需要输入要计算的两个日期即可,那就方便快捷了很多。

首先导入需要用到的时间和日期库,创建日期相差的方法函数:

    import datetime

    def count_differ_days(self, time_a, time_b):
        """
        计算日期相差天数
        """
        # 因为得到的是UTC时间,所以需要UTC时间+8
        time_a = time_a + datetime.timedelta(hours=8)
        time_b = time_b + datetime.timedelta(hours=8)

        d1 = datetime.date(time_a.year, time_a.month, time_a.day)
        d2 = datetime.date(time_b.year, time_b.month, time_b.day)

        return (d1 - d2).days

注意:因为只是以年/月/日为单位计算的,所以没有涉及到小时/分/秒 ,并不是以24小时为单位去计算,而是直接按照日期里的相差天数计算,没有时间差的BUG问题

(例:2021年10月22日1时0分0秒 与 2021年10月21日16时0分0秒相减,如果以24小时为单位进行运算,就会造成2021年10月21日16时0分0秒那一天在16:00之前的所有时间点不算在一天之内,是不符合结果预期的)

所以本方法,以日期直接计算,可以完美解决以上BUG冲突,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值