需求描述
- 获得指定日期所在周的星期一
- 计算两个日期间隔的周数
代码
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
import java.time.temporal.WeekFields;
public class WeekDateUtils {
public static LocalDate getFirstDayOfWeek(LocalDate localDate) {
WeekFields weekFields = WeekFields.ISO;
LocalDate date = localDate.with(weekFields.dayOfWeek(), 1L);
return date;
}
public static void main(String[] args) {
LocalDate now = LocalDate.now();
LocalDate localDate = LocalDate.of(now.getYear(), 3, 1);
LocalDate firstWeek = getFirstDayOfWeek(localDate);
System.out.println(firstWeek);
System.out.println(getBetweenWeeks(firstWeek, now));
localDate = LocalDate.of(now.getYear(), 9, 1);
System.out.println(getFirstDayOfWeek(localDate));
}
public static Long getBetweenWeeks(LocalDate begin, LocalDate end) {
return begin.until(end, ChronoUnit.WEEKS);
}
}