日付の重複チェック

日付の重複チェックを複雑に記述している人もいますが 単純に判定することができます
記述方法を統一化することで バグの発生を防ぎましょう

日付の重複のパターンには以下の 4通りがあります

            |-- 日付 --|
  @ |--------|
  A         |--------|
  B                 |--------|
  C       |------------|

いずれも 日付の開始日 ≦ @〜Cの終了日 AND 日付の終了日 ≧ @〜Cの開始日 となります
逆に重複しないパターンは該当しないため 上記の条件で問題ないことが分かります

            |-- 日付 --|
  @ |-----|
  A                    |-----|