Либо я не понимаю метод getActualMaximum(int)
, либо поле WEEK_OF_YEAR, либо есть ошибка с Sun (или все три) ... может кто-нибудь объяснить мне, почему (по крайней мере, в немецком языке ...) следующий код:
Locale.setDefault( Locale.GERMAN );
Calendar c = Calendar.getInstance();
c.set( Calendar.YEAR, 2010 );
c.set( Calendar.MONTH, 0 );
c.set( Calendar.DAY_OF_MONTH, 1 );
System.out.println("max: "+c.getActualMaximum( Calendar.WEEK_OF_YEAR ));
System.out.println("actual: "+c.get( Calendar.WEEK_OF_YEAR ));
производит следующий вывод:
max: 52
actual: 53
Вот Javadoc getActualMaximum(int)
:
Возвращает максимальное значение, которое
указанное поле календаря может иметь,
учитывая значение времени этого календаря.
Например, фактическое максимальное значение
поля МЕСЯЦ 12 в некоторых
лет и 13 в другие годы в
Еврейская календарная система.
Редактировать
Сюжет утолщается. В английском языке (-Duser.language=en -Duser.country=us
) вывод:
max: 52
actual: 1
Кажется, указывает на то, что это ошибка солнца для немецких локалей?