使用当前时间

时间:2016-02-04 20:16:46

标签: python python-2.7

我正在编写代码来计算与当前时间相比的时间,以获得剩余分钟的返回时间。

示例:晚上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

1 个答案:

答案 0 :(得分:0)

看起来问题是你在当前时间(20:28)使用24小时制,而在节目时间(晚上9点)使用12小时制,并忽略AM您的end_program时间戳中的/ PM指示符。这会使您的输出在半天内关闭12小时。