Java LocalDateTime Range 겹침 분리

Circlee7
2 min readMar 18, 2019

--

단순히 기록용으로 남겨두기 위해 블로그를 쓴다

기간별로 A ,B,C 라는 어떠한 값(할인율?)이 적용되어져야 할 경우

아래와 같이 각각 다른 기간의 할인이 걸린 경우

기간별로 할인대상들이 다르게 걸릴 수 있겠다.
위의 예에서는 3개의 다른 할인 기간으로 4개의 기간별 할인이 분리되었다.

java로 구현한 기간별 대상들을 구분하는 로직을 아래와 같이 작성하였다.

  • 클래스 명은 도저히 뭐라고 지어야 할지 모르겠다..

위와 같이 테스트를 했을때 떨어지는 결과는 아래와 같다.

RangeWrap [startedAt=2019-03-01T15:00, endedAt=2019-03-07T14:59:59, wrapObj=1]
RangeWrap [startedAt=2019-03-04T15:00, endedAt=2019-03-10T14:59:59, wrapObj=2]
RangeWrap [startedAt=2019-03-04T15:00, endedAt=2019-03-13T14:59:59, wrapObj=3]
2019-03-01T15:00 ~ 2019-03-04T14:59:59 : [1]
2019-03-04T15:00 ~ 2019-03-07T14:59:59 : [1, 2, 3]
2019-03-07T15:00 ~ 2019-03-10T14:59:59 : [2, 3]
2019-03-10T15:00 ~ 2019-03-13T14:59:59 : [3]

이러한 기능을 하는 유틸을 찾지 못해 작성하긴 했지만.
알맞은 로직을 찾는다면 바꿔야 겠다.!

--

--

Circlee7
Circlee7

No responses yet