Un bug dans la semaine de l'année dans le calendrier Java? [dupliquer]


Cette question a déjà une réponse ici:

Le code suivant calcule la semaine de travail d'une date spécifique.

DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar cal = new GregorianCalendar();
cal.setTime(df.parse("2015-12-27 08:00:00"));
System.err.printf("%d.%02d\n", cal.getWeekYear(), cal.get(Calendar.WEEK_OF_YEAR));

Il imprime actuellement 2016.01.

Si je comprends bien la spécification du numéro de semaine de travail, 2016.01 est la première semaine ayant 4 jours en 2016, mais il n'y a aucun moyen que le 27 décembre puisse appartenir à une telle semaine.

Existe-t-il un moyen de le faire en Java 7 qui fonctionnera pour toute année en supposant que les semaines commencent le lundi?

Author: Wyatt Shipman, 2016-01-05

1 answers

Essayez de définir le lundi comme premier jour de la semaine.

cal.setFirstDayOfWeek(Calendar.MONDAY);
 6
Author: Konstantinos Chalkias, 2016-01-05 09:29:55