Der folgende Code berechnet die Arbeitswoche eines bestimmten Datums.Ein Fehler in der Kalenderwoche im Java Kalender?
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));
Es druckt derzeit 2016.01.
Wie ich die Arbeitswoche Nummer Spezifikation verstehe, ist 2016.01 die erste Woche mit 4 Tagen im Jahr 2016, aber es gibt keine Möglichkeit, 27. Dezember kann zu solchen Woche gehören.
Gibt es eine Möglichkeit, dies in Java 7 zu tun, die für ein beliebiges Jahr funktioniert, wenn Wochen am Montag beginnen?
Woche Regeln sind anders auf der ganzen Welt, in welchem Ort sind Sie? – nos
Und was liefert 'cal.getFirstDayOfWeek()' zusammen mit 'cal.getMinimalDaysInFirstWeek()'? –
@JonSkeet, es wurde auf 1 gesetzt, ich hätte es auf 4 setzen sollen. – Evgeny