📌  相关文章
📜  Java程序,无需 calendar.get()函数即可生成任何年份的日历(1)

📅  最后修改于: 2023-12-03 14:43:04.581000             🧑  作者: Mango

用Java生成任何年份的日历

在本文中,我们将介绍如何使用Java编写代码来生成任何年份的日历。我们将展示如何使用Java中的日期类来计算日期,以及如何使用控制台输出来生成一张日历。

1. 准备工作

为了使用Java生成日历,我们需要了解一些基本的概念和概述。Java中有几个有用的日期类,其中最重要的是java.time.LocalDate类。这个类允许我们处理日期和时间并执行各种计算。另一个有用的类是java.time.format.DateTimeFormatter,它允许我们将日期和时间格式化为各种不同的格式。

2. 编写代码

下面是一个简单的Java程序,用于生成2021年的日历。我们将演示如何生成任何年份的日历。

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class CalendarGenerator {

    public static void main(String[] args) {
        int year = 2021;
        LocalDate date = LocalDate.of(year, 1, 1);
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMMM yyyy");
        
        System.out.println(formatter.format(date));
        System.out.println("Su Mo Tu We Th Fr Sa");
        
        int month = 1;
        int dayOfWeek = date.getDayOfWeek().getValue();
        int daysInMonth = date.lengthOfMonth();
        int day = 1;
        
        while (month <= 12) {
            System.out.println();
            System.out.println(date.getMonth().toString());
            
            for (int i = 1; i < dayOfWeek; i++) {
                System.out.print("   ");
            }
            
            for (int i = day; i <= daysInMonth; i++) {
                if (i < 10) {
                    System.out.print(" ");
                }
                
                System.out.print(i + " ");
                
                if (dayOfWeek == 7) {
                    dayOfWeek = 1;
                    System.out.println();
                } else {
                    dayOfWeek++;
                }
            }
            
            day = 1;
            month++;
            daysInMonth = date.plusMonths(1).lengthOfMonth();
            date = date.plusMonths(1);
        }
    }
}
3. 分析代码

这个程序生成了整个2021年的日历。这是通过以下步骤完成的:

  • 首先,我们设置了year变量的值。
  • 然后,我们使用LocalDate.of方法创建了一个新的日期对象。
  • 接着,我们创建了一个DateTimeFormatter对象,用于格式化日期对象。
  • 程序使用System.out.println语句输出了年份和星期几的标题。
  • 我们还定义了monthdayOfWeekdaysInMonthday变量。
  • 接下来,我们使用一个while循环,输出了每个月的名称和日期。
  • 在循环的每个迭代中,我们打印了每个月的名称以及星期几的标题。
  • 使用for循环打印每天的号码,并在累计日数之后换行。
  • 最后,我们更新月份,重置某些变量,并继续到下一个月。
4. 结论

在本文中,我们展示了如何使用Java中的日期类来生成日历。这个程序演示了一个简单的日历生成器,使用控制台输出来展示日历。通过阅读本文,您已经了解了如何编写Java程序来生成任何年份的日历。