Если вы используете JodaTime библиотеку (или готовы переключиться на него), который является личным предпочтением мои, вы можете использовать их функцию dayOfWeek()
для этого. Он возвращает объект LocalDate.Property
, который затем можно манипулировать, чтобы получить minimum value (фактически являясь началом недели).
Чтобы получить нужную дату и вернуть минимальный срок на этой неделе, попробуйте следующее:
LocalDate myDate = getSelectedDate();
return myDate.dayOfWeek().withMinimumValue();
Чтобы получить все даты до даты окончания, вы можете цикл:
List<LocalDate> weekDates = new ArrayList<>();
LocalDate tmp = getFirstDate().dayOfWeek().withMinimumValue();
// Loop until we surpass end date
while(tmp.isBefore(getEndDate())) {
weekDates.add(tmp);
tmp = tmp.plusWeeks(1);
}
Вы используя класс Java Calendar или библиотеку дат, такую как JodaTime? Ответ может отличаться, мне просто интересно, если у вас есть предпочтение. – AdamMc331
Я использую класс Java Calendar. – user2382771