外国的文化习惯和外国的代码设计其实还是有很大差别的,毕竟代码是全球的人都要用的,是不能强行说偏袒某一方的(不像现在的漂亮国,扯远了),只能说代码里唯一借鉴了外国的只是用字母而已,其实代码设计是一个逻辑思考过程,题主太焦急了一点,不妨,我们慢慢来看
首先是TemporalAdjusters.previous方法,在该方法的注释中已经提到了,该方法采用的时间字段是ChronoField.DAY_OF_WEEK,也就是按照一周7天来算,也就是满打满算的一周七天,并且返回上一次出现的你传入的DayOfWeek
注意这里说的是上一次的,而不是上一周的
有区别么?当然有,举个例子,还是用你的LocaDate.of(2020,10,21),虽然TemporalAdjusters.previous(DayOfWeek.SUNDAY)
最终返回的是2020-10-18,那如果填入的是DayOfWeek.MONDAY,也就是上一个周一,会是多少呢?难道会是2020-10-12日么?也就是上一周周一。不是的,答案其实是2020-10-19,也就是上一个周一,不是上一周的周一
所以首先在方法选型上,可能就不太对口,更不用谈是不是周一开始一周还是周日开始一周了,用这个方法是完成不了根据一个时间取到上一周的某个星期的问题
(如果不想看下面的思路,可能写的有点绕,容易混乱,可以直接拖到最下面查看最终代