Java

[Java]LocalTime 비교 방법(시간 비교 방법)

DevStory 2022. 8. 12.

LocalTime 비교 방법

두 개의 LocalTime 객체를 비교하기 위해 다음 4가지 메서드를 사용합니다.

 

4가지 메서드

- CompareTo(): 이 메서드를 호출하는 LocalTime 객체와 매개변수로 전달된 LocalTime 객체를 비교합니다.

- isBefore(): 이 메서드를 호출하는 LocalTime 객체가 매개변수로 전달된 LocalTime 객체보다 이전 시간인지 체크합니다.

- isAfter(): 이 메서드를 호출하는 LocalTime 객체가 매개변수로 전달된 LocalTime 객체보다 이후 날짜인지 체크합니다.

- equals(): 이 메서드를 호출하는 LocalTime 객체와 매개변수로 전달된 LocalTime 객체가 동일한지 비교합니다.


compareTo 메서드

LocalTime 클래스에서 제공하는 compareTo() 메서드는 이 메서드를 호출하는 LocalTime 객체와 매개변수로 전달된 LocalTime 객체를 비교하며, 정수 값을 반환합니다.

 

반환 결과

- 두 객체의 시간이 동일하면 0을 반환합니다.

- compareTo() 메서드를 호출한 LocalTime 객체가 이후 날짜인 경우 양수 값을 반환합니다.

- compareTo() 메서드를 호출한 LocalTime 객체가 이전 날짜인 경우 양수 값을 반환합니다.

public static void main(String args[]) {
  LocalTime localTime1 = LocalTime.of(19, 50, 05);
  LocalTime localTime2 = LocalTime.of(19, 50, 05);
  LocalTime beforeLocalTime = LocalTime.of(15, 25, 45);
  LocalTime afterLocalTime = LocalTime.of(21, 50,50);

  int comPareToResult1 = localTime1.compareTo(localTime2);
  System.out.println("localTime1(" + localTime1 +
          ")와 localTime2(" + localTime2 +
          ") 비교 결과: " + comPareToResult1);

  int comPareToResult2 = localTime1.compareTo(beforeLocalTime);
  System.out.println("localTime1(" + localTime1 +
          ")와 beforeLocalTime(" + beforeLocalTime +
          ") 비교 결과: " + comPareToResult2);

  int comPareToResult3 = localTime1.compareTo(afterLocalTime);
  System.out.println("localTime1(" + localTime1 +
          ")와 afterLocalTime(" + afterLocalTime +
          ") 비교 결과: " + comPareToResult3);
}

[실행 결과]

localTime1(19:50:05)와 localTime2(19:50:05) 비교 결과: 0
localTime1(19:50:05)와 beforeLocalTime(15:25:45) 비교 결과: 1
localTime1(19:50:05)와 afterLocalTime(21:50:50) 비교 결과: -1

isBefore 메서드

LocalTime 클래스에서 제공하는 isBefore() 메서드는 이 메서드를 호출하는 LocalTime 객체가 매개변수로 전달된 LocalTime 객체보다 이전 날짜인지 체크합니다.

 

반환 결과

- isBefore() 메서드를 호출한 LocalTime 객체가 이전 날짜인 경우 true를 반환합니다.

- isBefore() 메서드를 호출한 LocalTime 객체가 이후 날짜 또는 동일한 날짜인 경우 false를 반환합니다.

public static void main(String args[]) {
  LocalTime localTime1 = LocalTime.of(19, 50, 05);
  LocalTime localTime2 = LocalTime.of(19, 50, 05);
  LocalTime beforeLocalTime = LocalTime.of(15, 25, 45);
  LocalTime afterLocalTime = LocalTime.of(21, 50,50);

  boolean isBeforeResult1 = localTime1.isBefore(localTime2);
  System.out.println("localTime1(" + localTime1 +
          ")가 localTime2(" + localTime2 +
          ")의 이전 날짜인가? " + isBeforeResult1);

  boolean isBeforeResult2 = localTime1.isBefore(beforeLocalTime);
  System.out.println("localTime1(" + localTime1 +
          ")가 beforeLocalTime(" + beforeLocalTime +
          ")의 이전 날짜인가? " + isBeforeResult2);

  boolean isBeforeResult3 = localTime1.isBefore(afterLocalTime);
  System.out.println("localTime1(" + localTime1 +
          ")가 afterLocalTime(" + afterLocalTime +
          ")의 이전 날짜인가? " + isBeforeResult3);
}

[실행 결과]

localTime1(19:50:05)가 localTime2(19:50:05)의 이전 날짜인가? false
localTime1(19:50:05)가 beforeLocalTime(15:25:45)의 이전 날짜인가? false
localTime1(19:50:05)가 afterLocalTime(21:50:50)의 이전 날짜인가? true

isAfter 메서드

LocalTime 클래스에서 제공하는 isAfter() 메서드는 이 메서드를 호출하는 LocalTime 객체가 매개변수로 전달된 LocalTime 객체보다 이후 날짜인지 체크합니다.

 

반환 결과

- isAfter() 메서드를 호출한 LocalTime 객체가 이후 날짜인 경우 true를 반환합니다.

- isAfter() 메서드를 호출한 LocalTime 객체가 이전 날짜 또는 동일한 날짜인 경우 false를 반환합니다.

public static void main(String args[]) {
  LocalTime localTime1 = LocalTime.of(19, 50, 05);
  LocalTime localTime2 = LocalTime.of(19, 50, 05);
  LocalTime beforeLocalTime = LocalTime.of(15, 25, 45);
  LocalTime afterLocalTime = LocalTime.of(21, 50,50);

  boolean isAfterResult1 = localTime1.isBefore(localTime2);
  System.out.println("localTime1(" + localTime1 +
          ")가 localTime2(" + localTime2 +
          ")의 이후 날짜인가? " + isAfterResult1);

  boolean isAfterResult2 = localTime1.isBefore(beforeLocalTime);
  System.out.println("localTime1(" + localTime1 +
          ")가 beforeLocalTime(" + beforeLocalTime +
          ")의 이후 날짜인가? " + isAfterResult2);

  boolean isAfterResult3 = localTime1.isBefore(afterLocalTime);
  System.out.println("localTime1(" + localTime1 +
          ")가 afterLocalTime(" + afterLocalTime +
          ")의 이후 날짜인가? " + isAfterResult3);
}

[실행 결과]

localTime1(19:50:05)가 localTime2(19:50:05)의 이후 날짜인가? false
localTime1(19:50:05)가 beforeLocalTime(15:25:45)의 이후 날짜인가? false
localTime1(19:50:05)가 afterLocalTime(21:50:50)의 이후 날짜인가? true

equals 메서드

LocalTime 클래스는 Object 클래스에서 제공하는 equals() 메서드를 오버라이딩합니다. 이 메서드를 호출하는 LocalTime 객체가 매개변수로 전달된 LocalTime 객체와 동일한지 비교합니다.

 

반환 결과

- 두 개의 LocalTime 객체가 동일한 경우 true를 반환합니다.

- 동일하지 않은 모든 경우에 대해 false를 반환합니다.

public static void main(String args[]) {
  LocalTime localTime1 = LocalTime.of(19, 50, 05);
  LocalTime localTime2 = LocalTime.of(19, 50, 05);
  LocalTime beforeLocalTime = LocalTime.of(15, 25, 45);
  LocalTime afterLocalTime = LocalTime.of(21, 50,50);

  boolean EqualsResult1 = localTime1.equals(localTime2);
  System.out.println("localTime1(" + localTime1 +
          ")와 localTime2(" + localTime2 +
          ")는 동일한가? " + EqualsResult1);

  boolean EqualsResult2 = localTime1.equals(beforeLocalTime);
  System.out.println("localTime1(" + localTime1 +
          ")와 beforeLocalTime(" + beforeLocalTime +
          ")는 동일한가? " + EqualsResult2);

  boolean EqualsResult3 = localTime1.equals(afterLocalTime);
  System.out.println("localTime1(" + localTime1 +
          ")와 afterLocalTime(" + afterLocalTime +
          ")는 동일한가? " + EqualsResult3);
}

[실행 결과]

localTime1(19:50:05)와 localTime2(19:50:05)는 동일한가? true
localTime1(19:50:05)와 beforeLocalTime(15:25:45)는 동일한가? false
localTime1(19:50:05)와 afterLocalTime(21:50:50)는 동일한가? false
반응형

댓글