我有一个日期,我需要知道日期之前的最后一周和最后一个月。
例如,
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日。
它不同于get-date-of-first-day-of-week-based-on-localdate-now-in-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};
}
其实有很多种写法。我建议您自己进行一些探索。
关于java - 如何使用java8获取上周和上个月,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51356377/