java - 我想获取一年中的所有星期以及从当前日期开始的java中每周的开始和结束工作日日期?

标签 java controller calendar

示例

根据今天的日期 2019 年 6 月 24 日(一年中的第 24 周),它应该显示以下详细信息。

data:[
 week:24
 {
 startDate:24-06-2019,
 endDate: 28-06-2019
},
week: 25 
{
  startDate: 01-07-2019,
  endDate: 05-07-2019
}

一年的类似数据。我怎样才能在java中获得这些数据。由于我是java新手,我正在努力解决这个问题。如果可能,请帮助解释或代码。

PS:一年有 53 周。

最佳答案

我会用一个很好的旧循环来执行此操作:

public void workingDayOfYear() {
    LocalDate date = LocalDate.of(2019, 6, 24); // Java 8 date
    int initialWeekOfyear = date.get(WeekFields.of(Locale.UK).weekOfWeekBasedYear());
    int weekOfYear = initialWeekOfyear;
    do {
        LocalDate firstDayOfWeek = date.with(WeekFields.of(Locale.UK).dayOfWeek(), 1L);
        LocalDate lastWorkingDayOfWeek = date.with(WeekFields.of(Locale.UK).dayOfWeek(), 5L);

        StringBuilder result = new StringBuilder("Week : ");
        result.append(weekOfYear);
        result.append(", start=");
        result.append(firstDayOfWeek);
        result.append(", end=");
        result.append(lastWorkingDayOfWeek);

        System.out.println(result.toString());
        date = date.plusWeeks(1);
    } while ((weekOfYear = date.get(WeekFields.of(Locale.UK).weekOfWeekBasedYear())) != initialWeekOfyear);
}

输出:

Week : 26, start=2019-06-24, end=2019-06-28

Week : 27, start=2019-07-01, end=2019-07-05

...

Week : 24, start=2020-06-08, end=2020-06-12

Week : 25, start=2020-06-15, end=2020-06-19

请注意,您需要的第 53 周实际上是 2020 年的第一周。

关于java - 我想获取一年中的所有星期以及从当前日期开始的java中每周的开始和结束工作日日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56731314/

相关文章:

java - 如何在Java中将大量Json数据下载到CSV文件中?

java - android中的空指针异常错误

css - Drupal 日历 - 日历 View 在 IE7 中不显示条目

android - 水平滚动日历 View

asp.net - 如何删除日历的最后一周

java - com.ibm.ws.webcontainer.Exception.WebAppNotLoadedException : Failed to load webapp: admin_host

java - 我可以从同一 EJB 中具有 TransactionAttributeType.NOT_SUPPORTED 的另一个方法调用具有 TransactionAttributeType.REQUIRED 的方法吗

c# - 如何避免两个 Controller 操作之间出现 AmbiguousMatchException?

xcode - 如何使用 xCode 在 TextView 中编写长格式文本

angularjs - 在完成第一个 Controller 的执行后调用第二个 Angularjs Controller