Как вы получаете дату/время для "на этой неделе" с использованием библиотеки даты и времени Joda в Java?

Предполагая, что вы можете рассчитать дату/время для "сегодня" следуя рекомендациям Джона Скита:

LocalDate today = now.toLocalDate();
LocalDate tomorrow = today.plusDays(1);
DateTime startOfToday = today.toDateTimeAtStartOfDay(now.getZone());
DateTime startOfTomorrow = tomorrow.toDateTimeAtStartOfDay(now.getZone());
Then check if startOfToday <= time < startOfTomorrow for any particular time.

Как бы вы сделали что-то подобное для "на этой неделе".

Итак, если "сегодня" 20:38 29/06/2011, "на этой неделе" будет

20:38 22/06/2011 - 20:38 29/06/2011
1 ответ

DateTime startOfWeek = dateTime.minusDays(dateTime.dayOfWeek().get() - 1);
DateTime endOfWeek = dateTime.plusDays(7 - dateTime.dayOfWeek().get());

(Примечание: дни недели основаны на 1)

licensed under cc by-sa 3.0 with attribution.