python时间相加

为需要做累计时间的朋友们做了一下总结:

使用datatime库实现时间加:

在用python写累计时间时我发现使用datetime库来实现时分秒相加的话如果相加的时间结果超过24小时的话小时单位就会重新计算累计时间无法超过24小时代码如下

使用上面的方法的话对于需要时间累加不计算天数的话就会出现超过24小时后重新算上面代码输出结果为  02:57:30  

自定义时间加方法:

为了业务功能实现在网上查找了以下方法

以下代码可以实现时间的时分秒加法结果可以大于24小时

class Time:
    def __init__(self, hour=0, minute=0, second=0):
        self.hour = hour
        self.minute = minute
        self.second = second

    def __str__(self):
        return '%.2d:%.2d:%.2d' % (self.hour, self.minute, self.second)

    def __add__(self, other):
        if isinstance(other, Time):  # 如果是时间格式
            return self.add_time(other)
        else:  # 如果是数字格式
            return self.increment(other)

    def __radd__(self, other):
        """右加方法"""
        return self.__add__(other)

    def add_time(self, other):
        seconds = self.time2int() + other.time2int()
        return int2time(seconds)

    def increment(self, seconds):
        seconds += self.time2int()
        return int2time(seconds)

    def time2int(time):
        minutes = time.hour * 60 + time.minute
        seconds = minutes * 60 + time.second
        return seconds


def int2time(seconds):
    time = Time()
    minutes, time.second = divmod(seconds, 60)
    time.hour, time.minute = divmod(minutes, 60)
    return time


time = Time(2,3,5)
duration = Time(8,5,6)
print(time + duration)
print(time + 1337)
print(1337 + time)


t1 = Time(22, 43)
t2 = Time(20, 41)
t3 = Time(23, 37)
total = sum([t1, t2, t3])
print(total)
  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值