Java 8 Date API - 获取当月的序号位置

ser*_*0ne 7 java java-8 java-date

灵感来自以下帖子

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

01/01/1970 = 1 因为这是1970年1月的第一个星期四

02/01/1970 = 1 因为这是1970年1月的第一个星期五

1970年1月19日 = 3 因为这是1970年1月的第三个星期一

1970年1月31日 = 5 因为这是1970年1月的第五个星期六

我试过了什么? - 没什么......我甚至不知道从哪里开始; Java 8日期/时间API对我来说是一个新手.

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

public int getOrdinalPosition(TemporalAccessor temporal) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

rzw*_*oot 4

好吧,以 1970 年 1 月 19 日为例。减去 7 天,仍然是一月。再减去 7 天,仍然是一月。第四次减去 7 天,然后……哦嘿,这不再是一月了。第四次删除 7 天后,该月份就不再是正确的月份。

这就是你所需要的。

相关方法:一个for循环,一个计数器,和..minusDays(7)方法,和getMonth()