Liste von Tagen generieren ab einem bestimmten Datum und Endedatum

Hallo zusammen,

wie kann ich denn eine Liste von Tagen (List<Integer) von einem Startdatum und Endedatum generieren?
Also der Monat muss natürlich berücksichtigt werden.
Wenn wir am 31.08. sind, soll als nächster Wert wieder 1 stehen.

Das ganze hätte ich auch noch gerne für Monate und Jahre.

Vielen Dank für die Hilfe.
 
Zuletzt bearbeitet:
Vom Startdatum ausgehend solange um einen Tag/Monat/Jahr erhöhen, bis man am Ende angekommen ist.
Als Pseudocode:
Code:
for (datum i = startdatum; i < enddatum; i = i.plusTage(1)) {
  tage.add(i.getTag());
}
[code]
 
Ab Java 9 geht's auch so:
Java:
    int[] days = start.datesUntil(end.plus(1,DAYS))
            .mapToInt(date -> date.getDayOfMonth())
            .toArray();
    System.out.println(Arrays.toString(days));
Nachtrag: in Java 8 braucht es eine kleine Helfermethode:
Java:
    public static Stream<LocalDate> datesBetween(LocalDate start, LocalDate end) {
        int daysBetween = start.until(end.plus(1,DAYS)).getDays();
        return Stream.iterate(start, date -> date.plus(1, DAYS)).limit(daysBetween);
    }
Damit lässt sich dann das selbe machen:
Java:
    int[] days = datesBetween(start, end)
            .mapToInt(date -> date.getDayOfMonth())
            .toArray();
    System.out.println(Arrays.toString(days));
 
Zuletzt bearbeitet:
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben