当前位置:首页 > Java

日历如何打印java

2026-03-23 00:28:30Java

打印日历的Java实现方法

使用Java打印日历可以通过java.util.Calendar类或java.time包(Java 8及以上版本)实现。以下是两种不同的实现方式:

使用java.util.Calendar

import java.util.Calendar;

public class PrintCalendar {
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        int year = calendar.get(Calendar.YEAR);
        int month = calendar.get(Calendar.MONTH);

        printCalendar(year, month);
    }

    public static void printCalendar(int year, int month) {
        Calendar calendar = Calendar.getInstance();
        calendar.set(year, month, 1);

        int startDay = calendar.get(Calendar.DAY_OF_WEEK);
        int numberOfDays = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

        System.out.println("Sun Mon Tue Wed Thu Fri Sat");

        for (int i = 1; i < startDay; i++) {
            System.out.print("    ");
        }

        for (int i = 1; i <= numberOfDays; i++) {
            System.out.printf("%3d ", i);
            if ((i + startDay - 1) % 7 == 0 || i == numberOfDays) {
                System.out.println();
            }
        }
    }
}

使用java.time包(Java 8及以上版本)

import java.time.LocalDate;
import java.time.format.TextStyle;
import java.util.Locale;

public class PrintCalendarJava8 {
    public static void main(String[] args) {
        LocalDate date = LocalDate.now();
        printCalendar(date.getYear(), date.getMonthValue());
    }

    public static void printCalendar(int year, int month) {
        LocalDate date = LocalDate.of(year, month, 1);
        String monthName = date.getMonth().getDisplayName(TextStyle.FULL, Locale.getDefault());

        System.out.println(" " + monthName + " " + year);
        System.out.println("Su Mo Tu We Th Fr Sa");

        int startDay = date.getDayOfWeek().getValue() % 7;
        int lengthOfMonth = date.lengthOfMonth();

        for (int i = 0; i < startDay; i++) {
            System.out.print("   ");
        }

        for (int i = 1; i <= lengthOfMonth; i++) {
            System.out.printf("%2d ", i);
            if ((i + startDay) % 7 == 0 || i == lengthOfMonth) {
                System.out.println();
            }
        }
    }
}

自定义日历打印

如果需要打印特定年份和月份的日历,可以修改代码中的yearmonth参数:

printCalendar(2023, 12); // 打印2023年12月的日历

格式化输出

可以通过调整printf的格式字符串来改变日历的显示样式:

日历如何打印java

System.out.printf("%4d", day); // 使用4字符宽度对齐

以上代码提供了两种不同的实现方式,可以根据项目需求选择适合的版本。java.time包的版本更现代且线程安全,推荐在Java 8及以上版本中使用。

标签: 日历java
分享给朋友:

相关文章

java如何输入

java如何输入

使用Scanner类进行输入 Scanner类是Java中最常用的输入工具,适用于从控制台或文件读取数据。需要导入java.util.Scanner包。 基本语法: Scanner sca…

如何打开java

如何打开java

打开 Java 程序的方法 通过命令行运行 Java 程序 确保已安装 Java Development Kit (JDK) 并配置环境变量。使用 javac 编译 .java 文件,生成 .clas…

vue怎么实现日历

vue怎么实现日历

实现基础日历布局 使用Vue的模板语法构建日历的HTML结构,通常采用表格形式展示日期。月份切换通过计算属性动态生成日期数组。 <template> <div class=…

java如何react

java如何react

在Java中使用React 要在Java项目中集成React,通常需要将React前端与Java后端结合使用。以下是几种常见的方法: 使用Spring Boot作为后端 Spring Boot是一个…

如何自学java

如何自学java

选择合适的学习资源 从官方文档开始,Oracle提供的Java官方教程(Java Tutorials)是权威且免费的学习资料。在线平台如Codecademy、Coursera或Udemy提供互动式课程…

java如何输入字符串

java如何输入字符串

使用 Scanner 类 在 Java 中,可以通过 java.util.Scanner 类来输入字符串。以下是一个示例代码: import java.util.Scanner; public c…