-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())) {
...
}
편집 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/결정 - 여부 - 두 날짜 범위 - 오버랩 –
나는 그가 throw하는 방법을 묻는 것 같아 – sbowde4