-2
日付範囲が他の日付範囲にまたがるかどうかを判断する必要があります。Java新しい日付範囲が他の日付範囲の間にあるかどうかを確認します。
New start Date 1: 12/01/2015 (mm/dd/yyyy)
New start Date 2: 03/01/2016 --> Throw error message
New start Date 1: 12/01/2016
New start Date 2: 12/01/2017 --> Throw error message
既存の日付範囲:例えばのために私の新しい日付は/既存の日付をクロスオーバー落ちる場合
Existing 1: 01/01/2016 - 05/31/2016
Existing 2: 06/05/2017 - 10/31/2017
私はエラーメッセージを生成する必要があります。
for (Period p : periodList) {
if (!(newPeriodStartDate.after(p.getExistingPeriodStartDate()))
&& !(newPeriodStartDate.before(p.getExistingPeriodEndDate()))) {
message = "The Period falls between an existing Period: "+p.periodName();
break;
}
if (newPeriodEndDate.after(p.getExistingPeriodStartDate())
&& newPeriodEndDate.before(p.getExistingPeriodEndDate())) {
if (message == null) {
message = " The Period falls between an existing Period: "+p.getPeriodName();
}
break;
}
}
EDIT
更新されたコード(まだ動作していない):ここに私の既存のコード(として期待される動作していない)があります。
if (!(newPeriodStartDate.getTime() <= p.getExistingPeriodEndDate().getTime())
&& (newPeriodEndDate.getTime() <= p.getExistingPeriodStartDate().getTime())) {
...
}
EDIT 2:私は行方不明です
これは重複して質問ですが、その質問への答えは私の問題を解決しませんでした。ブログ投稿(http://baodad.blogspot.com/2014/06/date-range-overlap.html)は私の修正を助けました。
http://stackoverflow.com/questions/18938152/check-if-two-date-periods-overlap –
http://stackoverflow.com/questions/325933 /決定するかどうか2つの日付範囲のオーバーラップ –
私は彼がスローする方法と例外 – sbowde4