【问题标题】:Get all start-of-the-week dates between two dates获取两个日期之间的所有开始日期
【发布时间】:2015-12-18 14:50:43
【问题描述】:

我想显示两个日期之间的整周开始日期。

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

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

【问题讨论】:

  • 您使用的是Java Calendar 类还是JodaTime 等日期库?答案可能会有所不同,我只是好奇你是否有偏好。
  • 我正在使用 Java 日历类。

标签: java android android-calendar android-datepicker


【解决方案1】:

如果您正在使用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);
}

【讨论】:

    猜你喜欢
    • 2013-08-09
    • 1970-01-01
    • 2017-06-12
    • 2021-09-14
    • 2019-04-23
    • 2014-06-11
    • 1970-01-01
    • 1970-01-01
    • 2015-08-03
    相关资源
    最近更新 更多