我想显示两个日期之间的所有星期开始日期。
假设我选择了开始日期为8th Dec 2015 - 30th Dec 2015
,那么它应该返回结果:
6th Dec 2015
13th Dec 2015
20th Dec 2015
27th Dec 2015
答案 0 :(得分:3)
如果您正在使用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);
}