通话时长
【问题】已知通话的起始时间,结束时间,求通话的时长。 时间的格式: 小时:分:秒 求通话的总秒数。假设通话时长不大于24小时。 比如: 23:59:58 到 0:0:2 通话时长为3秒。
分析: 把不同的单位都转为秒,就容易处理了。 即,把时间转换为距离当日午夜的秒数。
def sec_span(begin
, end
):
def toHMS(s
):
return tuple(map(int, s
.split
(':')))
h1
,m1
,s1
= toHMS
(begin
)
h2
,m2
,s2
= toHMS
(end
)
t1
= h1
* 60 * 60 + m1
* 60 + s1
t2
= h2
* 60 * 60 + m2
* 60 + s2
T
= 60 * 60 * 24
return (T
+ t2
- t1
) % T
if __name__
== '__main__':
print(sec_span
('23:59:58','0:0:1'))
print(sec_span
('12:20:15','12:21:5'))
对于相减秒数可能负的情况,不必分情况去判断,只要加上个一天的总秒数,最后再求模消掉它就可以了。