Java LocalDate分别获取前一天、上一周、上一个月初、上一个月月底、上一年年初、上一年年底
时间: 2023-07-10 22:08:32 浏览: 360
获取前一天:
```java
LocalDate yesterday = LocalDate.now().minusDays(1);
```
获取上一周:
```java
LocalDate lastWeek = LocalDate.now().minusWeeks(1);
```
获取上一个月初:
```java
LocalDate firstDayOfLastMonth = LocalDate.now().minusMonths(1).withDayOfMonth(1);
```
获取上一个月月底:
```java
LocalDate lastDayOfLastMonth = LocalDate.now().withDayOfMonth(1).minusDays(1);
```
获取上一年年初:
```java
LocalDate firstDayOfLastYear = LocalDate.now().minusYears(1).withDayOfYear(1);
```
获取上一年年底:
```java
LocalDate lastDayOfLastYear = LocalDate.now().minusYears(1).withDayOfYear(365);
```
需要注意的是,在某些年份中,2月份的天数不同,因此在计算上一个月月底和上一年年底时需要特别考虑。
相关问题
LocalDate 获取一年第几周
`LocalDate` 是 Java 8 中的一个日期类,它表示的是一个没有时间部分的日期。如果你想要获取一个 `LocalDate` 对象所在的年份中的第几周,你可以借助 `DayOfWeek` 和 `WeekFields` 类来计算。首先,你需要找到给定日期属于该年的第一天是一周中的星期几,然后加上从年初到这个日期之间的天数,最后除以7并取整,得到的就是这一周的序号。
下面是一个示例代码片段:
```java
import java.time.LocalDate;
import java.time.DayOfWeek;
import java.time.WeekFields;
public int getWeekOfYear(LocalDate date) {
WeekFields weekFields = WeekFields.of(Locale.getDefault());
int dayOfWeekInYearStart = date.with(TemporalAdjusters.firstDayOfYear()).get(weekFields.dayOfWeek());
long daysSinceYearStart = date.until(date.with(TemporalAdjusters.firstDayOfYear()), ChronoUnit.DAYS);
return (int) ((daysSinceYearStart + dayOfWeekInYearStart) / 7) + 1; // 加1是因为一周的开始是0,实际一周的第一天是1
}
```
java LOCALDAte减一年取年月
在Java中,可以使用`LocalDate`类来表示日期。要减去一年并获取年月,可以使用`minusYears()`方法和`getYear()`、`getMonth()`方法来实现。
下面是一个示例代码:
```java
import java.time.LocalDate;
import java.time.Month;
public class Main {
public static void main(String[] args) {
// 获取当前日期
LocalDate currentDate = LocalDate.now();
System.out.println("当前日期: " + currentDate);
// 减去一年
LocalDate previousYearDate = currentDate.minusYears(1);
System.out.println("减去一年后的日期: " + previousYearDate);
// 获取年份和月份
int year = previousYearDate.getYear();
Month month = previousYearDate.getMonth();
System.out.println("减去一年后的年份: " + year);
System.out.println("减去一年后的月份: " + month);
}
}
```
运行以上代码,输出结果如下:
```
当前日期: 2022-01-01
减去一年后的日期: 2021-01-01
减去一年后的年份: 2021
减去一年后的月份: JANUARY
```
阅读全文