|
发表于 2023-4-5 15:45:07
|
显示全部楼层
以下是Python的实现代码:
- from datetime import datetime, timedelta
- def time_difference(t1: str, t2: str) -> str:
- fmt = '%H:%M:%S' if ':' in t1 else '%M:%S'
- dt1 = datetime.strptime(t1, fmt)
- dt2 = datetime.strptime(t2, fmt)
- diff = abs(dt1 - dt2)
- total_seconds = diff.total_seconds()
- hours, remainder = divmod(total_seconds, 3600)
- minutes, seconds = divmod(remainder, 60)
- if fmt == '%M:%S':
- return "{:02d}:{:02d}".format(int(minutes), int(seconds))
- else:
- return "{:02d}:{:02d}:{:02d}".format(int(hours), int(minutes), int(seconds))
- t1, t2 = "17:19:23", "13:11:7"
- print(time_difference(t1, t2)) # 04:08:16
复制代码 解释如下:
首先,我们需要将输入的字符串t1和t2转换为datetime对象,以便进行时间计算。
其次,我们可以使用datetime.timedelta对象计算两个datetime对象之间的差异,并使用total_seconds()方法将秒数转换为总秒数。
然后,我们将总秒数转换为小时、分钟和秒钟,并格式化结果字符串。如果数据格式为mm:ss,则省略小时字段。
最后,我们将时间差作为一个字符串返回。
这样,我们就可以得到输出的时间差为"04:08:16" |
|