Soit je ne comprends pas la méthode getActualMaximum(int)
ou le champ WEEK_OF_YEAR, ou il y a un bug Sun impliqués (ou tous les trois) ... quelqu'un pourrait-il m'expliquer pourquoi (au moins dans un lieu allemand ...) le code suivant:Calendar.getActualMaximum (Calendar.WEEK_OF_YEAR) bizarrerie
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));
produit la sortie suivante:
max: 52
actual: 53
Voici le Javadoc de getActualMaximum(int)
:
Renvoie la valeur maximale que le champ de calendrier spécifié peut avoir, étant donné la valeur temporelle de ce calendrier. Par exemple, la valeur maximale réelle du champ MOIS est de 12 dans certains ans, et de 13 dans les autres années dans le système de calendrier hébraïque .
Modifier
L'intrigue épaissit. Dans un environnement linguistique anglais (-Duser.language=en -Duser.country=us
) la sortie est:
max: 52
actual: 1
semble indiquer qu'il soit un bogue de Sun pour les paramètres régionaux allemands?
jours commencent à 1, mais les mois commencent à zéro? –
euh ouais. Croyez-le ou non. :) – Epaga