python3题解(40 通话时长)

mac2025-05-29  3

通话时长

【问题】已知通话的起始时间,结束时间,求通话的时长。 时间的格式: 小时:分:秒 求通话的总秒数。假设通话时长不大于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'))

对于相减秒数可能负的情况,不必分情况去判断,只要加上个一天的总秒数,最后再求模消掉它就可以了。

最新回复(0)