我的时间转换器没有添加分钟数

2024-06-14 05:21:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我打算将此转换器作为项目的一部分使用,但它似乎没有按预期工作。小时数是正确的,但它没有增加分钟数。我似乎不明白这里出了什么问题,但我认为这是“分裂”部分。“9:30”的转换值在缺少30分钟的输出中为540。“14:30”也是如此。谢谢你的回答

这是我的代码:

schedule1 = [
    ["8:00", "9:30"],
    ["10:00", "11:00"],
    ["13:00", "14:30"],
    ["16:00", "17:00"]
]

def convert_schedule(schedule):
    converted_schedule = []
    for item in schedule:
        start = item[0]
        end = item[1]
        start_hour, start_minute = start.split(':')
        end_hour, end_minute = end.split(':')
        start_time = int(start_hour) * 60 + int(start_minute)
        end_time = int(end_hour) * 60 + int(start_minute)
        print(f'{start_time}-{end_time}')

Tags: 项目代码converttimedefitemstartint
1条回答
网友
1楼 · 发布于 2024-06-14 05:21:16

正如在评论中已经提到的,您可以使用datetime库来实现这一点。这是一种方法,但肯定还有其他(可能更有效)的方法:

这里发生了什么?首先,我将结束时间转换为datetime对象,将开始时间转换为timedelta对象,以相互减去。最后,我将结果转换回字符串对象

from datetime import datetime, timedelta

schedule1 = [
    ["8:00", "9:30"],
    ["10:00", "11:00"],
    ["13:00", "14:30"],
    ["16:00", "17:00"]
]

for period in schedule1:
    print((datetime.strptime(period[1], '%H:%M') - timedelta(hours=datetime.strptime(period[0], '%H:%M').hour, minutes=datetime.strptime(period[0], '%H:%M').minute)).strftime('%H:%M'))

为什么选择datetime?尽一切可能让生活更轻松。现有的库(如内置的标准库)将帮助您以更少的代码行实现目标,从而使您的项目更干净。另一点是,您不必关心所有可能的边缘情况,因为模块和库可以为您提供帮助。这并不意味着你不必测试你的代码,但它使生活更容易

相关问题 更多 >