串联的两个时间间隔之间的差异

时间:2012-06-29 16:37:00

标签: python time

假设我有一段时间,例如10分钟。 我定义了开始时间和结束时间。

例如,开始时间是10 A.M,结束时间是2 P.M。

我需要时间间隔

10-10.10 , 10.10 - 10.20 , .. , 10.50-11 etc., 

存储在数据库中。

以下是我的想法。

from datetime import datetime
time1 = '10:00'
time2 = '10.10' 
format = '%H:%M'
obj1 = datetime.strptime(time1, format) - datetime.strptime(time2, format)

这对于两个已知的间隔是可以的。两个未知的时间间隔是什么,并将它们存储在数据库中?

我该如何解决这个问题?感谢。

1 个答案:

答案 0 :(得分:2)

只需在数据库中存储持续时间,开始和结束时间。您可以随时生成时间间隔:

def time_range(start, end, duration):
    dt = start
    while dt < end: #note: `end` is not included in the range
        yield dt
        dt += duration

实施例

from datetime import datetime, timedelta

# dummy data
duration = timedelta(minutes=10)
start = datetime.utcnow()
end = start + timedelta(hours=16)

# use list instead of tee(), islice() for simplicity 
lst = [dt.strftime('%H:%M') for dt in time_range(start, end, duration)] 
for interval in zip(lst, lst[1:]):
    print "%s-%s," % interval,
print