我有一份活动清单。 每一活动作为起点和终点,均为时标。 我现在想到一份“零星时间”活动清单,这些活动是在现有活动之外为展示而创造的。 我希望这一点是有意义的。 这是我迄今能够取得的最佳结果。 任何帮助都值得赞赏。
class Event():
Start = datetime.datetime
End = datetime.datetime
Reserved = boolean
# create a couple of events with some spare time between them...
ev1 = Event()
ev1.Start = datetime.datetime(2011,1,1,5)
ev1.End = datetime.datetime(2011,1,1,6)
ev1.Reserved = True
ev2 = Event()
ev2.Start = datetime.datetime(2011,1,1,8)
ev2.End = datetime.datetime(2011,1,1,9)
ev2.Reserved = True
events = [ev1,ev2]
# sort the events list...
events.sort(key=lambda e: e.Start)
# create a spare time event based on the existing events...
allevents = []
for event in events:
spare = Event()
spare.Start = events[events.index(event)-1].End+datetime.timedelta(seconds=1)
spare.End = event.Start-datetime.timedelta(seconds=1)
spare.Reserved = False
allevents.append(spare)
allevents.append(event)
allevents.sort(key=lambda e: e.Start)
for event in allevents:
print str(event.Start), str(event.End), event.Reserved
因此,这项工作已经完成,但我尚未说明如何在午夜停止和开始备件,但在我这样做之前,我想知道我是否在朝着正确的方向前进。 还是有更好的办法? (通常为!)
MFB