Java 8 Date API - 获取月份中日期的序号位置

标签 java java-8 date

受到以下帖子的启发

我需要一个函数来返回一个月中给定日期的序号位置,例如:

01/01/1970 = 1 because it's the first Thursday in January, 1970

02/01/1970 = 1 because it's the first Friday in January, 1970

19/01/1970 = 3 because it's the third Monday in January, 1970

31/01/1970 = 5 because it's the fifth Saturday in January, 1970

我尝试了什么? - 没什么……我什至不知道从哪里开始; Java 8 日期/时间 API 对我来说很新。

理想情况下,我想要一个具有此签名的函数:

public int getOrdinalPosition(TemporalAccessor temporal) {
    ...
}

最佳答案

嗯,以 19/01/1970 为例。从中减去 7 天,它仍然是 1 月。再次减去 7 天,然后……仍然是 1 月。第 4 次减去 7 天,然后......哦,嘿,它不再是 1 月了。第 4 次删除 7 天时,它不再是正确的月份。

这就是你所需要的。

相关方法:for 循环、计数器、minusDays(7) 方法和 getMonth()

关于Java 8 Date API - 获取月份中日期的序号位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54058102/

相关文章:

java - 尝试使用 thymeleaf 进行 Spring Boot 表单验证,但出现我无法弄清楚的错误

java - 我的java是1.5.0 & javac是1.6.0_24,是不是说明我的java安装不一致?

java - 转义序列无效(有效的是\b\t\n\f\r\"\'\)

java - 使用 spring mvc 和 jpa 将数组转换为映射

java - 在 Java 8 中将对象附加到列表并返回结果?

java - 用 Iterable.forEach 替换 foreach 循环纯粹是为了美观吗?

sql - MySQL 中的日期比较问题

Java:使用 try-catch、empty-try-catch、dummy-return 进行错误处理

java sql 日期时间

java - 如何解析日期时间并将其与相应的时区关联