获取两个日期之间的所有开始日期

时间:2015-12-18 14:50:43

标签: java android android-calendar android-datepicker

我想显示两个日期之间的所有星期开始日期。

假设我选择了开始日期为8th Dec 2015 - 30th Dec 2015,那么它应该返回结果:

6th Dec 2015
13th Dec 2015
20th Dec 2015
27th Dec 2015

1 个答案:

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