2017-03-09 1 views
1

두 개의 기간의 중첩을 찾으려면 다음과 같은 것이 필요하다는 것을 알고 있습니다.Jodatime 중첩 방법이 같지 않음 검사가

(thisStart <= otherEnd) && (otherStart <= thisEnd) 

그러나 내부 the overlaps method from Joda Time 나는

thisStart < otherEnd && otherStart < thisEnd 

이 늘 특정 중복 조건을 포함 참조하십시오. 시간 = <

+1

JodaTime 간격은 시작 부분에 포함되며 끝에는 'start <= x kennytm

+0

thisStart = otherEnd = otherStart – RBz

+0

참고 사항 : [Joda 시간의 포괄적 인 기간 확인] (http://stackoverflow.com/questions/13583944/inclusive-date-range-check-in-joda-time?rq=1) – Jesper

답변

1

startend 지정 순간 커버를 사용하여 중첩에 다른 방법이있다. Joda (그리고 시간 범위의 정상적인 구현) 범위는 오른쪽에서 절반 정도 열려 있습니다. 즉, 끝 지점은 포함되지 않습니다.

이러한 조건에서 Joda 라이브러리의 테스트가 정확합니다.

아직 확실하지 않다면 중첩이 올바르게 감지되지 않는 반례를 생각해보십시오.

+0

의견에 시나리오를 공유했습니다. 그 범위 자체가 아니라고 말할 수 있습니다. 하지만 나는 그것이 많은 일반적인 비즈니스 시나리오에 매우 유효하다고 생각합니다. – RBz

+3

즉, 개리슨은 Half-Open 접근 방식은 시작이 * inclusive *이고 끝은 * exclusive *임을 의미합니다. 이것은 시간의 범위를 정의하는 공통적이고 현명한 접근 방식입니다. –