2017-02-05 11 views
1

Mit Joda-Zeit, ist es möglich, die Liste der Termine in einer bestimmten Woche, nur Woche und Jahr gegeben? Alle Beispiele, die ich gefunden habe, muss ich ein Datum festlegen (mit Tag-Monat-Jahr), nur dann kann ich die Liste der Daten in einer bestimmten Woche finden.Liste Tage in der Woche, gegeben Woche und Jahr

Antwort

1

Joda-Time hat keine dedizierte Klasse für die Kombination aus Jahr (-von-Wochendatum) und nur Jahreswoche. Sie müssen also - im Rahmen von Joda-Time - einen Workaround wie diesen Code verwenden, der den Ersatz LocalDate mit einem festen Wochentag (hier: Montag als erster Kalendertag nach ISO-8601-Standard) verwendet):

int year = 2015; 
int week = 52; 

LocalDate d = new LocalDate(); 
d = d.weekyear().setCopy(year); 
d = d.weekOfWeekyear().setCopy(week); 
d = d.withDayOfWeek(DateTimeConstants.MONDAY); 

for (int i = 0; i < 7; i++) { 
    System.out.println(d); 
    d = d.plusDays(1); 
} 

Ausgang:

// 2015-12-21 
// 2015-12-22 
// 2015-12-23 
// 2015-12-24 
// 2015-12-25 
// 2015-12-26 
// 2015-12-27 

Schließlich können Sie die gesammelten Daten in einem ArrayList oder was auch immer setzen.

+0

Nur zu beachten: Joda-Time ist ein bisschen alt geworden und befindet sich nur noch im Wartungsmodus, zum Beispiel würde meine Bibliothek [Time4J] (https://github.com/MenoData/Time4J) einen Stream aktivieren. based solution: 'Liste dates = KalenderWoche.of (Jahr, Woche) .streamDaily(). collect (Collectors.toList());' –

Verwandte Themen