获取两个日期之间所有的每周起始日期

3

我希望展示两个日期之间的所有星期开始日期。

例如,如果我选择了起始日期为2015年12月8日-2015年12月30日,那么应该返回以下结果:

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

你是使用Java Calendar类还是像JodaTime这样的日期库?答案可能会有所不同,我只是好奇你是否有偏好。 - AdamMc331
我正在使用Java Calendar类。 - user2382771
1个回答

3
如果您正在使用JodaTime库(或愿意切换到该库),这是我的个人偏好,您可以使用其dayOfWeek()函数来实现此目的。它返回一个LocalDate.Property对象,您可以对其进行操作以获取最小值(实际上是本周的开始)。
要获取所需日期并返回该周的最小日期,请尝试以下操作:
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);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接