2014-06-07 5 views
0

바보 같은 질문을하지만 난 달력에 의해 반환 된 2014 년 6 월 주의 정확한 수를 얻을 수 없습니다 죄송합니다 : 나는 점점 오전주 2014년 6월

public static void main(String[] args) { 
    Calendar calendar = Calendar.getInstance(); 
    calendar.set(Calendar.DAY_OF_MONTH, 1); 
    calendar.set(Calendar.MONTH, Calendar.JUNE); 
    calendar.set(Calendar.YEAR, 2014); 
    calendar.setFirstDayOfWeek(Calendar.MONDAY); 
    System.out 
     .println("first day of week: " + calendar.getFirstDayOfWeek()); 
    System.out.println("weeks in month: " 
     + calendar.getActualMaximum(Calendar.WEEK_OF_MONTH)); 
    System.out.println("days in month: " 
     + calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); 
} 

을 :

first day of week: 2 
weeks in month: 5 
days in month: 30 

enter image description here

2014 년 6 월의 주 수가 6이 아닌 이유는 무엇입니까? Mac OS X 10.9.3에서 jdk1.8.0_05를 사용하고 있습니다.

+0

Locale.UK로도 캘린더를 만들려고했습니다. – ruruskyi

답변

7

각 주에 대한 정의는 각 Locale (국가, 지역, 기타)이주의 첫날로 무엇을 정의하는지에 따라 다릅니다. Calendar#getFirstDayOfWeek()으로 확인할 수 있습니다. 또한 첫 주에 최소한의 날이 있어야한다고 생각하는 것에 달려 있습니다. 당신은 Calendar#getMinimalDaysInFirstWeek()으로 그것을 얻을 수 있습니다. Locale은 일주일에 1 주일을 고려하는 데 1 일 이상이 필요하다는 것을 보여줍니다.

예를 들어, Locale.CANADA을 입력하면 getMinimalDaysInFirstWeek()1을 반환하기 때문에 6 주가 소요됩니다.

+0

Calendar.getInstance (Locale.FRANCE);를 수행하면 동일합니다. 또는 Calendar.getInstance (Locale.UK); – ruruskyi

+1

@ruruskyi 예, 둘 다 일주일에 4 일이 필요합니다. –

+0

감사합니다. calendar.setMinimalDaysInFirstWeek (1); 속임수를 쓰다. – ruruskyi