2014-09-24 9 views
-2

如何计算两个日期之间9:00 PM可以进行多少次?计算python中两个日期之间的9:00 PM

dt_start_time = "2014-09-23 11:00:00" 
dt_end_time = "2014-09-24 12:00:00" 

预期成果是1

dt_start_time = "2014-09-24 09:00:00" 
dt_end_time = "2014-09-24 22:00:00" 

预期输出1

dt_start_time = "2014-09-24 09:00:00" 
dt_end_time = "2014-09-26 12:00:00" 

预期产出2

+0

目前尚不清楚,您是否需要计算两个日期之间的天数? – Ilya 2014-09-24 13:56:11

+0

为什么最后一个例子中的预期输出是2而不是3? – 2014-09-24 13:57:02

+0

[将字符串转换为日期时间]的可能的重复(http://stackoverflow.com/questions/466345/converting-string-into-datetime) – CoryKramer 2014-09-24 13:57:13

回答

1

你可以简单地通过转换为两个日期之间的时间差做天,并且如果日期范围由于四舍五入而错过额外的晚上9点,则增加额外的一天

dt_start_time = "2014-09-23 11:00:00" 
dt_end_time = "2014-09-24 23:00:00" 

format = "%Y-%m-%d %H:%M:%S" 

from datetime import datetime as dt 

st = dt.strptime(dt_start_time, format) 
end = dt.strptime(dt_end_time, format) 

count = (end - st).days 
if st.hour < 21 and end.hour >= 21: 
    count += 1 
print count 
+0

它不起作用给出错误的输出。 – Anurag 2014-09-25 05:49:44

+0

@Auurag您预期的第二个casse输出是错误的,您怎么能在同一天的上午9点到中午12点之间有9PM?结果应该是0,这就是我输出的结果。 – 2014-09-25 06:46:37

+0

同意,第二种情况是错误的。已更新,谢谢:-) – Anurag 2014-09-25 07:04:47

相关问题