说明:仅供学习使用,请勿用于非法用途,若有侵权,请联系博主删除
作者:zhu6201976
一、需求
时间转换: X秒 --> 时:分:秒
输入:90秒 --> 00:01:30
输入:3661秒 --> 01:01:01
二、实现思路
1.直接计算(浮点数存在计算误差):
小时 = int( 总秒数 / 3600 )
分钟 = int( ( 总秒数 - 小时 * 3600 ) / 60 )
秒数 = 总秒数 - 小时 * 3600 - 分钟 * 60
2.利用Python内置库 time模块(100%精确 推荐)
三、代码实现
1.直接计算
- import math
-
-
- def deal_duration(duration: int) -> str:
- """
- 处理时长 example: 90 --> 00:01:30
- TODO 浮点数存在计算误差
- :param duration: int 时长 单位s
- :return: str '00:01:30'
- """
- hour = 3600
- minute = 60
-
- h_rest, h = math.modf(duration / hour)
- h = '%02d' % int(h)
-
- m_rest, m = math.modf(round(h_rest * minute, 6))
- m = '%02d' % int(m)
-
- s_rest, s = math.modf(m_rest * minute)
- s = '%02d' % int(s)
-
- ret = f'{h}:{m}:{s}'
-
- return ret
-
-
- ret = deal_duration(3661)
- print(ret)
2.利用Python内置库 time模块
- import time
-
-
- def deal_duration(duration: int) -> str:
- """
- 处理时长 example: 90 --> 00:01:30
- :param duration: int 时长 单位s
- :return: str '00:01:30'
- """
- return time.strftime('%H:%M:%S', time.gmtime(duration))
-
-
- ret = deal_duration(3661)
- print(ret)