gpt4 book ai didi

java - 我如何计算给定日期列表中周数的日期数

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:11:50 24 4
gpt4 key购买 nike

我想从给定的日期列表中找到第 1 周、第 2 周、第 3 周和第 4 周的日期数

[2017-11-22 21:41:39.0, 2017-11-27 23:15:26.0, 2017-11-27 23:26:23.0,
2017-11-28 19:50:18.0, 2017-11-29 16:14:33.0] are dates

//By Using map
Map<Integer, List<Date>> map;
map = inboxOutboxentityList.stream()
.collect(Collectors.groupingBy(element ->
element.getDate().get(weekFields.weekOfWeekBasedYear())
)
);

最佳答案

如果可以,请忘记早已过时的 Date 类,并在纯 java.time 中解决您的问题。您的代码离工作不远了。

    List<LocalDateTime> entities = Arrays.asList(
LocalDateTime.of(2017, Month.NOVEMBER, 22, 21, 41, 39),
LocalDateTime.of(2017, Month.NOVEMBER, 27, 23, 15, 26),
LocalDateTime.of(2017, Month.NOVEMBER, 27, 23, 26, 23),
LocalDateTime.of(2017, Month.NOVEMBER, 28, 19, 50, 18),
LocalDateTime.of(2017, Month.NOVEMBER, 29, 16, 14, 33));
Map<Integer, Long> countPerWeek = entities.stream()
.collect(Collectors.groupingBy(
ldt -> ldt.get(WeekFields.ISO.weekOfWeekBasedYear()),
Collectors.counting()));
System.out.println(countPerWeek);

这打印:

{48=4, 47=1}

因此第 47 周计数为 1,第 48 周计数为 4。我相信这正是您的意图。如果需要,请替换不同的 WeekFields 对象。

如果您正在获取 Date 对象的列表,您需要先将它们转换为一些现代类。关于如何做到这一点,有很多问题和答案,快乐的搜索。正如您可能已经意识到的那样,您可以在同一系列的流操作中执行此操作。

关于java - 我如何计算给定日期列表中周数的日期数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47628022/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com