dai*_*dai 4 java datetime java-8
我有个约会,我需要知道约会之前的最后一周和最后一个月。
例如,
在2018年7月15日,它的最后一周是从7月2日到7月8日。它的最后一个月是6月1日到6月30日。
在2018年7月16日,它的最后一周是从7月9日到7月15日。它的最后一个月是6月1日到6月30日。
在2018年7月17日,它的最后一周是从7月9日到7月15日。它的最后一个月是6月1日到6月30日。
它与基于Java-8的本地日期的第一个星期的第一天获取日期不同,我的问题是上周或上个月获取。
您可以使用这些辅助方法。
public static LocalDate[] getPreviousWeek(LocalDate date) {
final int dayOfWeek = date.getDayOfWeek().getValue();
final LocalDate from = date.minusDays(dayOfWeek + 6); // (dayOfWeek - 1) + 7
final LocalDate to = date.minusDays(dayOfWeek);
return new LocalDate[]{from, to};
}
public static LocalDate[] getPreviousMonth(LocalDate date) {
final LocalDate from = date.minusDays(date.getDayOfMonth() - 1).minusMonths(1);
final LocalDate to = from.plusMonths(1).minusDays(1);
return new LocalDate[]{from, to};
}
Run Code Online (Sandbox Code Playgroud)
实际上,有许多写方法。我建议您自己进行一些探索。