现在我只计算从第1天到最后一次的星期四的数量。 是否有使用Java 8 Date& amp;时间API? 我试过了:
date.range(WeekFields.ISO.weekOfMonth()).getMaximum();
但它给出的结果不正确,例如在2014年3月5日,它返回5,而根据ISO8601,3月只有4周。
答案 0 :(得分:1)
让我们把这个问题说成“一个月内有多少星期四?”
(ISO-8601没有描述几个月内的方法 - 它只描述了几年内的方法)。
我们可以使用该方法查找星期四的第5次出现,并查看它是否在同一个月:
LocalDate date = ...
LocalDate fifthThu = date.with(TemporalAdjusters.dayOfWeekInMonth(5, THURSDAY));
int thursdays = (fifthThu.getMonth() == date.getMonth() ? 5 : 4);