发新帖

[Java] 用Java实现一个2023全年日历,并用表格展示效果

零下一度 2023-5-18 800

以下是Java代码,可以生成一个2023年的日历表格:

import java.time.*;
import java.time.format.DateTimeFormatter;
public class Calendar2023 {
    public static void main(String[] args) {
        // 创建一个LocalDate对象,设置为2023年1月1日
        LocalDate date = LocalDate.of(2023, Month.JANUARY, 1);
        // 创建一个DateTimeFormatter对象,用于格式化日期
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("d");
        // 输出表头
        System.out.println("            2023");
        System.out.println("=============================");
        System.out.println("    January               ");
        // 输出第一行星期几的缩写
        System.out.println("Su Mo Tu We Th Fr Sa");
        // 计算并输出第一周前面的空格
        int indent = date.getDayOfWeek().getValue() % 7;
        for (int i = 0; i < indent; i++) {
            System.out.print("   ");
        }
        // 循环输出每一天的日期
        while (date.getYear() == 2023) {
            String dayStr = formatter.format(date);
            System.out.print(dayStr + " ");
            // 每到周六换行
            if (date.getDayOfWeek() == DayOfWeek.SATURDAY) {
                System.out.println();
            }
            // 增加一天
            date = date.plusDays(1);
        }
    }
}

运行上述代码,将会在控制台输出如下结果:

            2023
=============================
    January               
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

这个程序创建了一个LocalDate对象,并使用DateTimeFormatter对象将日期格式化为“d”(即只显示日)。然后,它计算第一周前面需要输出多少空格,循环输出每一天的日期,并在每周六换行。





最新回复 (0)
返回
零下一度
主题数
940
帖子数
0
注册排名
1