我正在编写代码来计算与当前时间相比的时间,以获得剩余分钟的返回时间。
示例:晚上8点带走,晚上7点30分,这是30分钟。
当我尝试这个时:
program_remaining = list()
current_time = datetime.timedelta(hours = get_24_hours, minutes = get_24_minutes)
end_program = datetime.timedelta(hours = int(program_hours), minutes = int(program_minutes))
current_program = end_program - current_time
program_remaining.append(current_program)
它会给我错误的输出结果:
20:10:48 T:5324 NOTICE: -1 day, 12:20:00
20:10:48 T:5324 NOTICE: -1 day, 12:50:00
20:10:48 T:5324 NOTICE: -1 day, 12:20:00
20:10:48 T:5324 NOTICE: -1 day, 12:50:00
20:10:48 T:5324 NOTICE: -1 day, 12:50:00
20:10:48 T:5324 NOTICE: -1 day, 12:50:00
20:10:48 T:5324 NOTICE: -1 day, 12:50:00
这应该是:
0:30
1:00
0:30
1:00
1:00
1:00
1:00
以下是end_program
数据的列表:
20:05:36 T:5844 NOTICE: 8:30:00
20:05:36 T:5844 NOTICE: 9:00:00
20:05:36 T:5844 NOTICE: 8:30:00
20:05:36 T:5844 NOTICE: 9:00:00
20:05:36 T:5844 NOTICE: 9:00:00
20:05:36 T:5844 NOTICE: 9:00:00
20:05:36 T:5844 NOTICE: 9:00:00
以下是current_time
的输出:
20:00:08 T:2160 NOTICE: 20:00:00
20:00:08 T:2160 NOTICE: 20:00:00
20:00:08 T:2160 NOTICE: 20:00:00
20:00:08 T:2160 NOTICE: 20:00:00
20:00:08 T:2160 NOTICE: 20:00:00
20:00:08 T:2160 NOTICE: 20:00:00
20:00:08 T:2160 NOTICE: 20:00:00
end_program
的类型是'datetime.timedelta and the type for the
current_time`是'datetime.timedelta。
请问我如何使用正确的计算方法来获取这些程序的剩余时间?
编辑:
以下是get_24_hours
:
20:24:16 T:4860 NOTICE: 20
20:24:16 T:4860 NOTICE: 20
20:24:16 T:4860 NOTICE: 20
20:24:16 T:4860 NOTICE: 20
20:24:16 T:4860 NOTICE: 20
20:24:16 T:4860 NOTICE: 20
20:24:16 T:4860 NOTICE: 20
以下是get_24_minutes
:
20:28:07 T:5612 NOTICE: 28
20:28:07 T:5612 NOTICE: 28
20:28:07 T:5612 NOTICE: 28
20:28:07 T:5612 NOTICE: 28
20:28:07 T:5612 NOTICE: 28
20:28:07 T:5612 NOTICE: 28
20:28:07 T:5612 NOTICE: 28
以下是program_hours
:
20:30:20 T:5092 NOTICE: 9
20:30:20 T:5092 NOTICE: 9
20:30:20 T:5092 NOTICE: 9
20:30:20 T:5092 NOTICE: 9
20:30:20 T:5092 NOTICE: 9
20:30:20 T:5092 NOTICE: 9
20:30:20 T:5092 NOTICE: 9
以下是program_minutes
:
20:31:58 T:5688 NOTICE: 0
20:31:58 T:5688 NOTICE: 00
20:31:58 T:5688 NOTICE: 2
20:31:58 T:5688 NOTICE: 00
20:31:58 T:5688 NOTICE: 00
20:31:58 T:5688 NOTICE: 00
20:31:58 T:5688 NOTICE: 00
答案 0 :(得分:0)
看起来问题是你在当前时间(20:28)使用24小时制,而在节目时间(晚上9点)使用12小时制,并忽略AM您的end_program
时间戳中的/ PM指示符。这会使您的输出在半天内关闭12小时。