我有一个复杂的任务,我已经把头撞到墙上好几天了。我尝试了大约 4 种不同的方法,但是每种方法似乎都停滞不前,而且变得非常令人沮丧。
我有一个时间范围。例如,14:30:00 到 18:30:00。考虑这个时间范围某人的工作班次。在此时间范围内,他们声明他们不能从 15:30:00 到 16:30:00 以及从 17:30:00 到 18:30:00 工作。我需要修改原始班次的开始和结束时间以删除冲突的班次。
原始移位数组如下所示:
$original_shift[0]['start'] = '14:30:00';
$original_shift[0]['end'] = '18:30:00';
从原始班次中删除的时间范围如下所示:
$subshift[0]['start'] = '15:30:00';
$subshift[0]['end'] = '16:30:00';
$subshift[1]['start'] = '17:30:00';
$subshift[1]['end'] = '18:30:00';
这是一个可视化:
所以,当我完成后,我基本上需要我原来的班次看起来像这样:
$original_shift[0]['start'] = '14:30:00';
$original_shift[0]['end'] = '15:30:00';
$original_shift[1]['start'] = '16:30:00';
$original_shift[1]['end'] = '17:30:00';
我还需要考虑的一些并发症是:
这些时间范围可以是任何时间(不限于我在示例中使用的半小时),但是我会 100% 确定不可用的时间范围将始终在原始班次的开始和之间开始和结束结束时间。
不可用时间可能会增加和/或占用整个原始班次的时间。
我不是在寻找一个“编写我的代码”的人,而是在寻找过去处理过类似事情并且可能对他们如何完成它有一些见解的人。