我有一个对象列表,想按周数映射它们。
我看过类似的东西
private static int getWeekOfYear(LocalDate date) {
WeekFields wf = WeekFields.of(Locale.getDefault());
return date.get(wf.weekOfYear());
}
问题是我不想按一年中的第几周来执行此操作。
我想要一个Map<Integer, List<DTO>>
Integers
在哪里将是 1, 2, 3, ...
我已经对原始 List<DTO>
进行了排序按日期然后我可以获得第一个 DTO.getDate()
以确定第 1 周何时开始。
然后我的问题是遍历 DTO's
并确定每个人将在哪个周数。我觉得我必须找到星期几,然后计算出下周开始前的天数,例如如果第一个日期是星期三,则第 2 周将在 5 天后开始,随后的每个星期将再增加 7 天。
我真的很难找到一种写这篇文章的好方法。所以我想知道是否有人能想出创建此 Map
的好方法?
谢谢
最佳答案
基本上你想研究新的 Java8 date/time在日期上进行此类计算时的 API。
然后请注意:您确定要在此处使用 map 吗? 如果我输入正确,你说这些键会运行 1、2、3,... 无论如何?所以 - 当您知道键只是一个数字序列时,为什么不使用列表呢?
另一种选择是使用 TreeSet 和自定义 比较器。如果您使用比较器根据日期排序您的 DTO 对象,TreeSet 会自动将它们放入正确的顺序!
关于java - 如何在 Java 中按周映射日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40462132/