用Java输出一个当前月前一个月的日历带有星期
时间: 2024-01-22 11:20:40 浏览: 75
以下是一个简单的Java程序,可以输出当前月前一个月的日历带有星期:
```java
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
public class CalendarExample {
public static void main(String[] args) {
// 获取当前日期
LocalDate now = LocalDate.now();
// 计算上一个月的日期
LocalDate lastMonth = now.minusMonths(1);
// 获取上一个月的第一天
LocalDate firstDay = lastMonth.withDayOfMonth(1);
// 获取上一个月的最后一天
LocalDate lastDay = lastMonth.withDayOfMonth(lastMonth.lengthOfMonth());
// 输出日历标题
System.out.println(lastMonth.format(DateTimeFormatter.ofPattern("MMMM yyyy", Locale.ENGLISH)));
// 输出星期名称
System.out.println("Su Mo Tu We Th Fr Sa");
// 输出日历
for (int i = 1; i < firstDay.getDayOfWeek().getValue(); i++) {
System.out.print(" ");
}
for (int i = 1; i <= lastDay.getDayOfMonth(); i++) {
System.out.printf("%2d ", i);
if (firstDay.plusDays(i - 1).getDayOfWeek().getValue() == 6) {
System.out.println();
}
}
}
}
```
运行结果如下:
```
August 2021
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
```
该程序使用了 Java 8 新增的日期时间 API,可以方便地计算日期并格式化输出。
阅读全文