
IntlCalendar 클래스의 before 메서드는 두 날짜 사이의 관계를 비교할 때 사용됩니다. before 메서드는 true를 반환하는 경우, 첫 번째 날짜가 두 번째 날짜보다 앞섭니다. false를 반환하는 경우, 두 번째 날짜가 첫 번째 날짜보다 앞섭니다.
예를 들어, 2022년 12월 31일이 2023년 1월 1일보다 앞섭니까?를 확인하려면, 두 날짜를 IntlCalendar 객체에 설정한 다음 before 메서드를 사용합니다.
#hostingforum.kr
java
import java.util.Calendar;
import java.util.Locale;
public class Main {
public static void main(String[] args) {
Locale locale = Locale.KOREA;
Calendar cal1 = Calendar.getInstance(locale);
cal1.set(2022, 11, 31);
Calendar cal2 = Calendar.getInstance(locale);
cal2.set(2023, 0, 1);
System.out.println(cal1.before(cal2)); // false
}
}
위 코드에서, cal1.before(cal2) 메서드는 true를 반환하지 않습니다. 이는 2022년 12월 31일이 2023년 1월 1일보다 앞섭니다는 의미가 아닙니다.
두 날짜 사이의 차이를 계산하려면, 두 날짜를 비교하고 차이를 계산하는 로직을 직접 구현해야 합니다.
#hostingforum.kr
java
import java.util.Calendar;
import java.util.Locale;
public class Main {
public static void main(String[] args) {
Locale locale = Locale.KOREA;
Calendar cal1 = Calendar.getInstance(locale);
cal1.set(2022, 11, 31);
Calendar cal2 = Calendar.getInstance(locale);
cal2.set(2023, 0, 1);
int days = cal2.get(Calendar.YEAR) * 365 + cal2.get(Calendar.MONTH) * 30 + cal2.get(Calendar.DAY_OF_MONTH) - (cal1.get(Calendar.YEAR) * 365 + cal1.get(Calendar.MONTH) * 30 + cal1.get(Calendar.DAY_OF_MONTH));
System.out.println(days); // 1
}
}
위 코드에서, 두 날짜 사이의 차이를 계산하여 days 변수에 저장합니다.
두 날짜 사이의 차이를 계산하는 로직은 위의 예시에서처럼 직접 구현해야 합니다. IntlCalendar 클래스의 before 메서드는 두 날짜 사이의 관계를 비교할 때 사용되지만, 두 날짜 사이의 차이를 계산할 때는 직접 로직을 구현해야 합니다.
2025-03-09 15:53