LocaleDate 비교 방법
두 개의 LocalDate 객체를 비교하기 위해 다음 5가지 메서드를 사용합니다.
5가지 메서드
- CompareTo(): 이 메서드를 호출하는 LocalDate 객체와 매개변수로 전달된 LocalDate 객체를 비교합니다.
- isBefore(): 이 메서드를 호출하는 LocalDate 객체가 매개변수로 전달된 LocalDate 객체보다 이전 날짜인지 체크합니다.
- isAfter(): 이 메서드를 호출하는 LocalDate 객체가 매개변수로 전달된 LocalDate 객체보다 이후 날짜인지 체크합니다.
- isEqual(): 이 메서드를 호출하는 LocalDate 객체와 매개변수로 전달된 LocalDate 객체가 동일한지 비교합니다.
- equals(): 이 메서드를 호출하는 LocalDate 객체와 매개변수로 전달된 LocalDate 객체가 동일한지 비교합니다.
compareTo 메서드
LocalDate 클래스에서 제공하는 compareTo() 메서드는 이 메서드를 호출하는 LocalDate 객체와 매개변수로 전달된 LocalDate 객체를 비교하며, 정수 값을 반환합니다.
반환 결과
- 날짜가 동일하면 0을 반환합니다.
- compareTo() 메서드를 호출한 LocalDate 객체가 이후 날짜인 경우 양수 값을 반환합니다.
- compareTo() 메서드를 호출한 LocalDate 객체가 이전 날짜인 경우 음수 값을 반환합니다.
public static void main(String args[]) {
LocalDate todayLocalDate1 = LocalDate.of(2022, Month.AUGUST, 11);
LocalDate todayLocalDate2 = LocalDate.of(2022, Month.AUGUST, 11);
LocalDate beforeLocalDate = LocalDate.of(2022, Month.AUGUST, 1);
LocalDate afterLocalDate = LocalDate.of(2022, Month.AUGUST, 31);
int comPareToResult1 = todayLocalDate1.compareTo(todayLocalDate2);
System.out.println("todayLocalDate1(" + todayLocalDate1 +
")와 todayLocalDate2(" + todayLocalDate2 +
") 비교 결과: " + comPareToResult1);
int comPareToResult2 = todayLocalDate1.compareTo(beforeLocalDate);
System.out.println("todayLocalDate1(" + todayLocalDate1 +
")와 beforeLocalDate(" + beforeLocalDate +
") 비교 결과: " + comPareToResult2);
int comPareToResult3 = todayLocalDate1.compareTo(afterLocalDate);
System.out.println("todayLocalDate1(" + todayLocalDate1 +
")와 afterLocalDate(" + afterLocalDate +
") 비교 결과: " + comPareToResult3);
}
[실행 결과]
todayLocalDate1(2022-08-11)와 todayLocalDate2(2022-08-11) 비교 결과: 0
todayLocalDate1(2022-08-11)와 beforeLocalDate(2022-08-01) 비교 결과: 10
todayLocalDate1(2022-08-11)와 afterLocalDate(2022-08-31) 비교 결과: -20
다음은 compareTo() 메서드가 양수 또는 음수를 반환하는 경우입니다.
연도가 다름
- 연도 차이 수를 반환합니다.
연도는 동일하나 개월이 다름
- 개월 차이 수를 반환합니다.
연도, 개월이 동일하나 날짜가 다름
- 날짜 차이 수를 반환합니다.
isBefore 메서드
LocalDate 클래스에서 제공하는 isBefore() 메서드는 이 메서드를 호출하는 LocalDate 객체가 매개변수로 전달된 LocalDate 객체보다 이전 날짜인지 체크합니다.
반환 결과
- isBefore() 메서드를 호출한 LocalDate 객체가 이전 날짜인 경우 true를 반환합니다.
- isBefore() 메서드를 호출한 LocalDate 객체가 이후 날짜 또는 동일한 날짜인 경우 false를 반환합니다.
public static void main(String args[]) {
LocalDate todayLocalDate1 = LocalDate.of(2022, Month.AUGUST, 11);
LocalDate todayLocalDate2 = LocalDate.of(2022, Month.AUGUST, 11);
LocalDate beforeLocalDate = LocalDate.of(2022, Month.AUGUST, 1);
LocalDate afterLocalDate = LocalDate.of(2022, Month.AUGUST, 31);
boolean isBeforeResult1 = todayLocalDate1.isBefore(todayLocalDate2);
System.out.println("todayLocalDate1(" + todayLocalDate1 +
")가 todayLocalDate2(" + todayLocalDate2 +
")의 이전 날짜인가? " + isBeforeResult1);
boolean isBeforeResult2 = todayLocalDate1.isBefore(beforeLocalDate);
System.out.println("todayLocalDate1(" + todayLocalDate1 +
")가 beforeLocalDate(" + beforeLocalDate +
")의 이전 날짜인가? " + isBeforeResult2);
boolean isBeforeResult3 = todayLocalDate1.isBefore(afterLocalDate);
System.out.println("todayLocalDate1(" + todayLocalDate1 +
")가 afterLocalDate(" + afterLocalDate +
")의 이전 날짜인가? " + isBeforeResult3);
}
[실행 결과]
todayLocalDate1(2022-08-11)가 todayLocalDate2(2022-08-11)의 이전 날짜인가? false
todayLocalDate1(2022-08-11)가 beforeLocalDate(2022-08-01)의 이전 날짜인가? false
todayLocalDate1(2022-08-11)가 afterLocalDate(2022-08-31)의 이전 날짜인가? true
isAfter 메서드
LocalDate 클래스에서 제공하는 isAfter() 메서드는 이 메서드를 호출하는 LocalDate 객체가 매개변수로 전달된 LocalDate 객체보다 이후 날짜인지 체크합니다.
반환 결과
- isAfter() 메서드를 호출한 LocalDate 객체가 이후 날짜인 경우 true를 반환합니다.
- isAfter() 메서드를 호출한 LocalDate 객체가 이전 날짜 또는 동일한 날짜인 경우 false를 반환합니다.
public static void main(String args[]) {
LocalDate todayLocalDate1 = LocalDate.of(2022, Month.AUGUST, 11);
LocalDate todayLocalDate2 = LocalDate.of(2022, Month.AUGUST, 11);
LocalDate beforeLocalDate = LocalDate.of(2022, Month.AUGUST, 1);
LocalDate afterLocalDate = LocalDate.of(2022, Month.AUGUST, 31);
boolean isAfterResult1 = todayLocalDate1.isBefore(todayLocalDate2);
System.out.println("todayLocalDate1(" + todayLocalDate1 +
")가 todayLocalDate2(" + todayLocalDate2 +
")의 이후 날짜인가? " + isAfterResult1);
boolean isAfterResult2 = todayLocalDate1.isBefore(beforeLocalDate);
System.out.println("todayLocalDate1(" + todayLocalDate1 +
")가 beforeLocalDate(" + beforeLocalDate +
")의 이후 날짜인가? " + isAfterResult2);
boolean isAfterResult3 = todayLocalDate1.isBefore(afterLocalDate);
System.out.println("todayLocalDate1(" + todayLocalDate1 +
")가 afterLocalDate(" + afterLocalDate +
")의 이후 날짜인가? " + isAfterResult3);
}
[실행 결과]
todayLocalDate1(2022-08-11)가 todayLocalDate2(2022-08-11)의 이후 날짜인가? false
todayLocalDate1(2022-08-11)가 beforeLocalDate(2022-08-01)의 이후 날짜인가? false
todayLocalDate1(2022-08-11)가 afterLocalDate(2022-08-31)의 이후 날짜인가? true
isEqual 메서드
LocalDate 클래스에서 제공하는 isEqual() 메서드는 이 메서드를 호출하는 LocalDate 객체가 매개변수로 전달된 LocalDate 객체와 동일한지 비교합니다.
반환 결과
- 두 개의 LocalDate 객체가 동일한 경우 true를 반환합니다.
- 동일하지 않은 모든 경우에 대해 false를 반환합니다.
public static void main(String args[]) {
LocalDate todayLocalDate1 = LocalDate.of(2022, Month.AUGUST, 11);
LocalDate todayLocalDate2 = LocalDate.of(2022, Month.AUGUST, 11);
LocalDate beforeLocalDate = LocalDate.of(2022, Month.AUGUST, 1);
LocalDate afterLocalDate = LocalDate.of(2022, Month.AUGUST, 31);
boolean isEqualResult1 = todayLocalDate1.isEqual(todayLocalDate2);
System.out.println("todayLocalDate1(" + todayLocalDate1 +
")와 todayLocalDate2(" + todayLocalDate2 +
")는 동일한가? " + isEqualResult1);
boolean isEqualResult2 = todayLocalDate1.isEqual(beforeLocalDate);
System.out.println("todayLocalDate1(" + todayLocalDate1 +
")와 beforeLocalDate(" + beforeLocalDate +
")는 동일한가? " + isEqualResult2);
boolean isEqualResult3 = todayLocalDate1.isEqual(afterLocalDate);
System.out.println("todayLocalDate1(" + todayLocalDate1 +
")와 afterLocalDate(" + afterLocalDate +
")는 동일한가? " + isEqualResult3);
}
[실행 결과]
todayLocalDate1(2022-08-11)와 todayLocalDate2(2022-08-11)는 동일한가? true
todayLocalDate1(2022-08-11)와 beforeLocalDate(2022-08-01)는 동일한가? false
todayLocalDate1(2022-08-11)와 afterLocalDate(2022-08-31)는 동일한가? false
equals 메서드
LocalDate 클래스는 Object 클래스에서 제공하는 equals() 메서드를 오버라이딩합니다. 이 메서드를 호출하는 LocalDate 객체가 매개변수로 전달된 LocalDate 객체와 동일한지 비교합니다.
반환 결과
- 두 개의 LocalDate 객체가 동일한 경우 true를 반환합니다.
- 동일하지 않은 모든 경우에 대해 false를 반환합니다.
public static void main(String args[]) {
LocalDate todayLocalDate1 = LocalDate.of(2022, Month.AUGUST, 11);
LocalDate todayLocalDate2 = LocalDate.of(2022, Month.AUGUST, 11);
LocalDate beforeLocalDate = LocalDate.of(2022, Month.AUGUST, 1);
LocalDate afterLocalDate = LocalDate.of(2022, Month.AUGUST, 31);
boolean EqualsResult1 = todayLocalDate1.equals(todayLocalDate2);
System.out.println("todayLocalDate1(" + todayLocalDate1 +
")와 todayLocalDate2(" + todayLocalDate2 +
")는 동일한가? " + EqualsResult1);
boolean EqualsResult2 = todayLocalDate1.equals(beforeLocalDate);
System.out.println("todayLocalDate1(" + todayLocalDate1 +
")와 beforeLocalDate(" + beforeLocalDate +
")는 동일한가? " + EqualsResult2);
boolean EqualsResult3 = todayLocalDate1.equals(afterLocalDate);
System.out.println("todayLocalDate1(" + todayLocalDate1 +
")와 afterLocalDate(" + afterLocalDate +
")는 동일한가? " + EqualsResult3);
}
[실행 결과]
todayLocalDate1(2022-08-11)와 todayLocalDate2(2022-08-11)는 동일한가? true
todayLocalDate1(2022-08-11)와 beforeLocalDate(2022-08-01)는 동일한가? false
todayLocalDate1(2022-08-11)와 afterLocalDate(2022-08-31)는 동일한가? false
'Java' 카테고리의 다른 글
[Java]두 날짜 차이 계산하기 (0) | 2022.08.12 |
---|---|
[Java]날짜 정렬 방법 (0) | 2022.08.11 |
[Java]폴더(디렉토리) 생성 방법 (0) | 2022.07.12 |
[Java]인터페이스의 정적 메서드 (0) | 2022.06.27 |
[Java]중첩 인터페이스 및 내부 인터페이스(Nested Interface and Inner Interface) (0) | 2022.06.27 |
댓글