java - 如何在 Java 中按周映射日期?

标签 java

我有一个对象列表,想按周数映射它们。

我看过类似的东西

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/

相关文章:

java - 出现错误 : Exception in thread "main" while executing program for different loop conditions in static block

java - 如何通过URL在源代码中找到Spring映射的方法?

在Windows 7中更改壁纸的java代码

java - 尝试在 java 中运行 Dbpedia 的 sparql 查询时出现 NoClassDefFoundError。 (org/slf4j/LoggerFactor)

java - XML格式验证

java - Java 编程中的删除和重命名文件

java - fragment 到 Activity 通信

java - 比较文件中的行

java - 在哪里可以找到我的服务器的 JBOSS 部署状态列表?

java - Spring MVC : Cannot convert value of type String to required type Category for property 'category'