이미 Java8에 대해 언급하신 분이 계시던데...이런 방식이 좀 어색하네요...기본적으로 다들 같은 생각이네요...
주어진 시작 시간을 당월 1일로 변경해야 합니다
제공되는 종료 시간을 당월 말일로 변경해야 합니다
어떻게 바꾸느냐가 관건인데... Java 8에는 호출할 수 있는 기성 API가 있는데... 파싱이 필요 없고... 첫날이 되어도 괜찮지만 많네요 문제부터 끝까지 심판...
주어진 조건에 따라 isBetween 메소드를 작성하면 다음과 같습니다
으아악
간단한 설명... yyyy-mm에는 연도 및 월 형식을 처리하는 새로운 클래스가 있습니다. 이것은 YearMonth(TemporalAdjuster의 구현 클래스입니다)입니다. LocalDate의 구현 클래스인 Temporal의 메소드는 실제로 Temporal 인터페이스의 with 메소드입니다. 이는 Java 8의 새로운 time API 설계와 관련됩니다. with 메소드 서명은 다음과 같습니다. >
의미: 개체는 Temporal 개체 TemporalAdjuster에 따라 조정될 수 있습니다.
그래서 위에서 작성한 코드를 조합하면 아이디어는 다음과 같습니다
현재 시간을 임의로 찍어봤습니다
아LocalDate
전달된
에 따라 A를 수정합니다(with 메소드 호출). 즉, 시간의 연도와 월을 조정하고 시간 B를 가져옵니다YearMonth
조정자
(TemporalAdjuster)에 따라 B를 넣고, 요일을 조정하여 최종 시간을 얻는다TemporalAdjusters.firstDayOfMonth
실제로 흔히 사용되는 시간 조정이
에 요약되어 있습니다... 또한 간단하고 직관적이며 사용하기 쉬운 이 클래스를 주목해 보세요 TemporalAdjusters
마지막으로 이전에 간단하게 연결했던 Java 8 new time API 간의 관계를 제공합니다. 이러한 관계를 따라가면 특정 클래스와 관계를 살펴보면 new time API가 사용하기 쉬울 뿐만 아니라
Java8을 사용하지 않는 경우:
으아아아이미 Java8에 대해 언급하신 분이 계시던데...이런 방식이 좀 어색하네요...기본적으로 다들 같은 생각이네요...
주어진 시작 시간을 당월 1일로 변경해야 합니다
제공되는 종료 시간을 당월 말일로 변경해야 합니다
어떻게 바꾸느냐가 관건인데... Java 8에는 호출할 수 있는 기성 API가 있는데... 파싱이 필요 없고... 첫날이 되어도 괜찮지만 많네요 문제부터 끝까지 심판...
주어진 조건에 따라 isBetween 메소드를 작성하면 다음과 같습니다
으아악간단한 설명...
yyyy-mm에는 연도 및 월 형식을 처리하는 새로운 클래스가 있습니다. 이것은
YearMonth
(TemporalAdjuster
의 구현 클래스입니다)입니다.LocalDate
의 구현 클래스인Temporal
의 메소드는 실제로Temporal
인터페이스의 with 메소드입니다. 이는 Java 8의 새로운 time API 설계와 관련됩니다. with 메소드 서명은 다음과 같습니다. >의미: 개체는
그래서 위에서 작성한 코드를 조합하면 아이디어는 다음과 같습니다Temporal
개체TemporalAdjuster
에 따라 조정될 수 있습니다.아
LocalDate
에 따라 A를 수정합니다(with 메소드 호출). 즉, 시간의 연도와 월을 조정하고 시간 B를 가져옵니다
YearMonth
(
TemporalAdjuster
)에 따라 B를 넣고, 요일을 조정하여 최종 시간을 얻는다TemporalAdjusters.firstDayOfMonth
에 요약되어 있습니다... 또한 간단하고 직관적이며 사용하기 쉬운 이 클래스를 주목해 보세요
마지막으로 이전에 간단하게 연결했던 Java 8 new time API 간의 관계를 제공합니다. 이러한 관계를 따라가면 특정 클래스와 관계를 살펴보면 new time API가 사용하기 쉬울 뿐만 아니라TemporalAdjusters
Java8을 사용하는 경우:
으아아아Java8을 사용하지 않고 Joda-time을 사용하는 경우:
으아아아end는 이번 달의 마지막 날로 변환되어야 합니다. 예를 들어
2017-06-30
또는
yyyy-mm
로 결정되면yyyy-mm-dd
date.compareTo(start) >= 0 && date.compareTo(end) < 0
을 사용하세요.2017-4-6