使用datetime.timedelta相加时长后如何获取总小时数?
获取timedelta相加后的总小时数
嘿,这事儿其实挺容易解决的,Python的datetime.timedelta给我们提供了两种实用的方式来计算总小时数,看你需要精确值还是整数值来选就行:
方法1:精确总小时数(包含小数)
如果你需要保留分钟、秒转化后的小数部分(比如30分钟就是0.5小时),可以用timedelta的total_seconds()方法,把所有时间单位转换成秒后,再除以3600(1小时的秒数):
步骤如下:
- 先把两个时长对象相加得到总时长:
total_time = time_1 + time_2 - 计算总小时数:
total_hours = total_time.total_seconds() / 3600
方法2:整数总小时数(忽略分秒)
要是你只需要整数形式的总小时数,直接把天数转换成小时(1天=24小时),再加上timedelta自带的hours属性就行,这样会自动忽略分钟和秒的部分:
计算方式:total_hours = total_time.days * 24 + total_time.hours
完整代码示例
import datetime # 示例初始值,你可以换成自己的变量 hours_1, minutes_1, seconds_1 = 5, 30, 45 hours_2, minutes_2, seconds_2 = 3, 45, 15 # 创建两个时长对象 time_1 = datetime.timedelta(hours=hours_1, minutes=minutes_1, seconds=seconds_1) time_2 = datetime.timedelta(hours=hours_2, minutes=minutes_2, seconds=seconds_2) # 计算总时长 total_time = time_1 + time_2 # 精确总小时数 precise_hours = total_time.total_seconds() / 3600 print(f"精确总小时数: {precise_hours}") # 输出:9.266666666666666 # 整数总小时数 integer_hours = total_time.days * 24 + total_time.hours print(f"整数总小时数: {integer_hours}") # 输出:9
简单说,需要精确值就用第一种方法,要整数就用第二种,根据你的业务场景选就好~
内容的提问来源于stack exchange,提问作者Arryn McLean
相关产品推荐
相关产品推荐

