Java 특정 요일을 기준으로 주차 구하기(Get number of week where first day of some day)

| 문제

년도를 기준으로 주차를 구하거나 달의 주차를 구할때
Calendar 객체에 기본값으로 정해진 주차를 구하다보니 원하는 주차가 나오지 않는 경우가 발생하였다.

| 해결

  • Calendar 의 인스턴스를 가져올때 파라미터로 로케일값을 주는 방법이있다.
    // 예제 - 
    Calendar cal = Calendar.getInstance(new Locale("en", "US")); // 일요일 기준 주차 구하기
    Calendar cal = Calendar.getInstance(new Locale("en", "UK")); // 월요일 기준 주차 구하기
    cal.get(Calendar.WEEK_OF_YEAR);
    
  • Calendar 객체의 setFirstDayOfWeek, minimalDaysInFirstWeek 를 적용하는 방법이있다.
    minimalDaysInFirstWeek 메소드는 해당 연도의 첫주에 포함할 최소 일 수를 설정하는 것이다.
    setFirstDayOfWeek 에 기준요일을 설정하고, minimalDaysInFirstWeek 에 포함할 일 수를 설정하면된다.
    // 예제 - 일요일을 시작요일로 설정하고 주차를 계산
    Calendar cal = Calendar.getInstance();
    cal.setFirstDayOfWeek(Calendar.SUNDAY);
    cal.minimalDaysInFirstWeek(7);
    cal.get(Calendar.WEEK_OF_YEAR);
    

태그:

카테고리:

업데이트:

댓글남기기