【发布时间】:2015-05-20 10:47:08
【问题描述】:
我尝试了很久,一直没能找到python中如何分割重叠时间的逻辑。
这是我的测试用例时间
- 上午 9 点 - 下午 5 点
- 8am-10am、12pm-1pm、4pm-6pm(多个条目)
案例 1:
Entry 1: 9am - 5pm
Test Entry: 10am - 12pm
Output: 9am - 10am, 10am - 12pm, 12pm - 5pm
现在我希望如果输入重叠时间,那么系统应该将它分成不同的时间。喜欢
entry1.start_time = 9:00am
entry1.end_time = 5:00pm
现在如果我输入这个条目
entry2.start_time = 10:00am
entry2.end_time = 12:00pm
那么系统应该把它拆分成
9am - 10am, 10am - 12pm, 12pm - 5pm
案例 2
Entry 1 - 9am - 5pm
Test Entry 8am - 10am
Then output should be 8am - 10am , 10am - 5pm
案例 3 这是案例1的修改
Entry 1 - 9am - 10am
Test Entry 8am - 11am
Then output should be 8am - 11am
我被逻辑困住了。这是我开始的一段代码
class TimeSplitter(object):
def __init__(self, **kwargs):
self.entries = kwargs.pop('entries', [])
self.test_entry = kwargs.pop('testEntry', '')
def test_overlap(self, entry1, test_entry):
if test_entry.start_time > entry1.start_time and test_entry.start_time < entry1.end_time
pass
我不能再继续下去了
【问题讨论】:
-
您可以使用 24 H 时间格式,然后可以轻松比较值。
-
在您的 案例 1 中,
entry2在entry1的范围内,因此我们将其分成三个。但是,在您的情况 3 中,同样的事情重复了,entry1完全在entry2的范围内,但我们只得到一个输出?这里有什么交易? -
@MarkusMeskanen 案例 3 与案例 1 相反。案例 3 条目 1 在 2 内,但案例 1 条目 2 在第一个条目内。