Entschuldigung im Voraus, wenn ich irgendwelche ISO Datumsangaben hier verwechsle.Wie kann ich jede Woche in einem Jahr in Java 8 iterieren?
Ich würde gerne in der Lage sein, jede Woche in einem bestimmten Jahr zu wiederholen (sagen wir 2015). Ich weiß, dass Sie die Anzahl der Wochen zwischen dem 1.1.2015 und dem 31.12.2015 berechnen können, aber das entspricht nicht dem ISO-Standard einer Woche. Vielmehr gibt es die Anzahl der 7-Tage-Perioden zwischen zwei Daten. Die erste ISO-Woche des Jahres beginnt nicht unbedingt am 1.1.2015.
Wenn ich das erste Datum der ersten Woche bekommen kann, glaube ich, ich kann einfach über ZonedDateTime.plusWeeks(1)
für 52 Wochen iterieren. Sie können die Wochennummer eines beliebigen Datum über das Feld Accessor erhalten:
ZonedDateTime date = ZonedDateTime.now();
WeekFields weekFields = WeekFields.of(Locale.getDefault());
int weekNumber = date.get(weekFields.weekOfWeekBasedYear());
diese Gegeben, ich glaube, es möglich sein muss, das Datum des ersten Tages der ersten Woche eines spezifischen zu erhalten Jahr in der Java8 Time API, aber ich habe noch keinen Weg gefunden, es zu tun.
Siehe auch [meine Beispiele] (http://time4j.net/tutorial/appendix.html#x14) zum Erstellen eines ISO-Wochendatums in verschiedenen Bibliotheken. Selbst das alte JDK mit 'java.util.GregorianCalendar' ist anscheinend einfacher, weil JSR-310 (java.time-package) hier keine einfache Factory-Methode hat. –