2013-10-02 2 views
0

내가, 년의 을 총 주를 얻으려고 내가이 명령 사용 : 내가 지금 settTotinizio varibles를 인쇄안드로이드 - 달력 GET (Calendar.WEEK_OF_YEAR) 나던 작업

Calendar now = Calendar.getInstance(); 
     now.set(Calendar.YEAR,annoInizio); 
     now.set(Calendar.MONTH,11); 
     now.set(Calendar.DATE, 30); 

int settTotInizio = now.get(Calendar.WEEK_OF_YEAR); 

을 , 그리고 지금 WEEK_OF_YEAR의 가치는 40이지만 settTotInizio는 1입니다.

내가 잘못한 부분을 이해하지 못합니다. 누군가 나를 도울 수 있습니까?

내 로그 캣입니다 :

I/System.out(30038): ,firstDayOfWeek=2,minimalDaysInFirstWeek=0,ERA=1,YEAR=2013,MONTH=11,WEEK_OF_YEAR=40,WEEK_OF_MONTH=1,DAY_OF_MONTH=30,DAY_OF_YEAR=275,DAY_OF_WEEK=4,DAY_OF_WEEK_IN_MONTH=1,AM_PM=1,HOUR=0,HOUR_OF_DAY=12,MINUTE=48,SECOND=49,MILLISECOND=762,ZONE_OFFSET=3600000,DST_OFFSET=3600000] 


I/System.out(30038): settTotInizio: 1 

답변

2

개월이 제로 기반하므로 설정 11 월 필드 12 월에 설정합니다. 2013-12-30은 로케일의 주 번호 1입니다.

로그가 주 40을 먼저 인쇄하는 이유는 set() 호출 후에 다른 필드가 아직 기본 현재 날짜 값에서 다시 계산되지 않기 때문입니다. 로그 인쇄 순서를 변경하면 Calendarget()은 다른 캘린더 필드를 완성하므로 호환되는 결과를 얻습니다.

+0

감사합니다. :) – Garumbo