私は複雑な仕事をしており、ここ数日間頭を壁にぶつけています。私は約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';
私も考慮する必要があるいくつかの合併症は次のとおりです。
これらの時間範囲はいつでもかまいません (私の例で使用したように 30 分に制限されていません)。終了時間。
利用できない時間により、元のシフトの時間が大幅に短縮されたり、時間がかかったりする可能性があります。
過去にこのようなことを扱ったことがあり、彼らがどのようにそれを達成したかについて何らかの洞察を持っている人を探しているのと同じくらい、「自分のコードを書く」人を探しているわけではありません。