java - 如何使用java8获取上周和上个月
问题描述
我有一个日期,我需要知道日期之前的最后一周和上个月。
例如,
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};
}
实际上有很多方法可以写这个。我建议你自己做一些探索。
推荐阅读
- c++ - C++ 构建过程 - lib 依赖项
- java - 你用的是哪个java?在 Server 2016 上安装 JDK 和 JRE (10.0.1);设置 JAVA_HOME 和路径
- quantum-computing - Jupyter notebook 在执行 qiskit 代码时总是给出 BrokenProcessPool 错误
- asp.net-core - 在 Razor 视图中访问 foreach 之外的 IEnumerable Model 值
- mysql - Laravel如何连接连接表中的所有记录
- r - R中的分类:通过查找值为真的行来返回行号
- jquery - 如何将接受功能用于具有多个特定元素的可放置?
- amazon-web-services - 停止 Amazon WorkDocs 同步
- python - 如何从 numpy 为 pytorch 张量分配一个矩阵?
- scrapy - 如何在抓取文件类型网站时跳过父目录?