Python在':'的两边添加数字即.22:11 + 22:22 = 44:33

use*_*027 0 python string int time

22:11  +  22:22  =  44:33
varible_A = ('22:11')
varible_B = ('22:11')
Run Code Online (Sandbox Code Playgroud)

左边的数字(22)是分钟,右边的数字(11)是秒

我正在尝试添加两个数字

total = 44:22
Run Code Online (Sandbox Code Playgroud)

这是一个奖金,但真的会帮助我*

有可能像时间一样对待数字......

varible_A = ('22:50')
varible_B = ('22:30')
Run Code Online (Sandbox Code Playgroud)

我想得到 45:20

代替

44:80
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 6

使用datetime.timedelta()到持续时间模式:

from datetime import timedelta

def to_delta(value):
    minutes, seconds = map(int, value.split(':'))
    return timedelta(minutes=minutes, seconds=seconds)

var_a = to_delta('22:50')
var_b = to_delta('22:30')

var_a + var_b
Run Code Online (Sandbox Code Playgroud)

然后,您可以将timedelta()对象转回到分钟+秒表示:

def to_minutes_seconds(delta):
    return '{:02.0f}:{:02.0f}'.format(*divmod(delta.total_seconds(), 60))
Run Code Online (Sandbox Code Playgroud)

演示:

>>> var_a = to_delta('22:50')
>>> var_b = to_delta('22:30')
>>> var_a + var_b
datetime.timedelta(0, 2720)
>>> to_minutes_seconds(var_a + var_b)
'45:20'
Run Code Online (Sandbox Code Playgroud)

或者,a的str()结果timedelta格式为HH:MM:SS:

>>> str(var_a + var_b)
'00:45:20'
Run Code Online (Sandbox Code Playgroud)

也可能适合您的需求.请注意,对于超过一小时的增量,str()和之间存在差异to_minutes_seconds(); 前者显示小时,分钟和秒,后者只显示分钟,分钟值可以超过60.代表超过24小时的Deltas获得额外的天数前缀:

>>> str(timedelta(minutes=65, seconds=10))
'1:05:10'
>>> to_minutes_seconds(timedelta(minutes=65, seconds=10))
'65:10'
>>> str(timedelta(minutes=(60*24)+1, seconds=10))
'1 day, 0:01:10'
Run Code Online (Sandbox Code Playgroud)