【发布时间】:2018-06-17 17:29:10
【问题描述】:
我试图弄清楚如何确定某个特定的星期一是给定月份的第一个、第二个、第三个或第四个星期一。我已经弄清楚如何使用 LocalDate 类来获取下周一和每月的一周。
LocalDate now = LocalDate.of(2018, 2, 1);
LocalDate nextMonday = now.with(next(DayOfWeek.MONDAY));
WeekFields weekFields = WeekFields.of(Locale.getDefault());
int week = nextMonday.get(weekFields.weekOfMonth());
在上面的示例中,代码获取下一个星期一和它所在的星期。星期是二月的第二个星期,但那个星期一不是第二个星期一,而是第一个星期一。对此的任何帮助将不胜感激。
【问题讨论】:
-
前 7 天的第一个星期一,接下来的 7 天的第二个星期一,依此类推。所以从月份中减去 1,除以 7,再加 1。
-
@AndyTurner 我并不热衷于将给定日期除以数字,你能举个例子吗?
-
有趣的问题:
java.time有类似Calendar.DAY_OF_WEEK_IN_MONTH的东西吗?它用于设置月份中的星期几,例如将星期一更改为该月的第三个星期一:TemporalAdjusters.dayOfWeekInMonth。但是为了得到?
标签: java java-8 java-time dayofweek localdate