[JavaScript] 期間の重複チェック
期間Aと期間Bを比較して、重複があるかチェックするIFメモ
1 2 3 4 5 |
if ((dateA.start >= dateB.start && dateA.start <= dateB.end) || (dateA.end >= dateB.start && dateA.end <= dateB.end) || (dateA.start < dateB.start && dateA.end > dateB.end)) { // 処理 } |
下記いずれかの条件に当てはまる
- 期間Aの開始日は、期間Bの範囲内(期間Bの開始日以上&終了日以下)にある
- 期間Aの終了日は、期間Bの範囲内(期間Bの開始日以上&終了日以下)にある
- 期間Aの開始日も終了日も、期間Bの範囲外
(期間Aの開始日は期間Bの開始日以前 & 期間Aの終了日は期間Bの終了日以降)にある
※期間Aが期間Bを覆っている