I need to determine if a date range is within/cross over other date ranges. For eg:
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 date ranges:
Existing 1: 01/01/2016 - 05/31/2016
Existing 2: 06/05/2017 - 10/31/2017
I should generate an error message if my new dates fall/crossover the existing dates. Here is my existing code (not working as expected):
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
Updated code (still not working). What am I missing:
if (!(newPeriodStartDate.getTime() <= p.getExistingPeriodEndDate().getTime())
&& (newPeriodEndDate.getTime() <= p.getExistingPeriodStartDate().getTime())) {
...
}
EDIT 2:
This is a duplicate question, but the answer to that question did not fix my issue. The blog post (http://baodad.blogspot.com/2014/06/date-range-overlap.html) helped me fix.