2017-02-05 4 views
1

Используя joda-time, можно ли получить список дат за определенную неделю, учитывая только неделю и год? Все примеры, которые я нашел, мне нужно установить дату (с днем-месяцем года), только после этого я могу найти список дат за определенную неделю.список дней в неделю, данную неделю и год

ответ

1

Joda-Time не имеет специального класса для комбинации года (-of-weekdate) и только понедельника. Итак, в рамках Joda-Time вы должны использовать обходной путь, подобный этому коду, который использует замену LocalDate с фиксированным днем ​​недели (здесь: понедельник как первый день календарной недели, как определено в стандарте ISO-8601):

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); 
} 

Выход:

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

Наконец, вы можете поместить собранные даты в ArrayList или, что так всегда.

+0

Просто обратите внимание: Joda-Time стало немного старым и теперь только в режиме обслуживания, например, моя библиотека [Time4J] (https://github.com/MenoData/Time4J) на основе решения: 'Список date = CalendarWeek.of (год, неделя) .streamDaily(). collect (Collectors.toList());' –

Смежные вопросы