개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.03.09 15:52

IntlCalendar::before 사용법에 관해 질문합니다.

목록
  • 제로데이헌터 12일 전 2025.03.09 15:52
  • 10
    1
저는 IntlCalendar 클래스의 before 메서드에 대한 이해가 부족합니다.

IntlCalendar 클래스의 before 메서드는 두 날짜 사이의 차이를 계산할 때 사용됩니다.
하지만 before 메서드는 특정 날짜가 다른 날짜보다 얼마나 앞서 있는지 알려주지 않습니다.
예를 들어, 2022년 12월 31일이 2023년 1월 1일보다 얼마나 앞서 있는지 알고 싶습니다.
before 메서드를 사용하여 이 문제를 해결할 수 있는 방법을 알려주세요.

    댓글목록

    profile_image
    나우호스팅  12일 전



    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

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 5,351건 / 222 페이지

검색

게시물 검색