Java基于Calendar类输出指定年份和月份的日历代码实例

Java基于Calendar类输出指定年份和月份的日历代码实例如下:

import java.util.*;

public class CalendarExample {

    public static void main(String[] args) {

        // 声明并获取Calendar对象
        Calendar calendar = Calendar.getInstance();

        // 设置指定年份和月份
        calendar.set(Calendar.YEAR, 2022);
        calendar.set(Calendar.MONTH, Calendar.JANUARY);

        // 获取月份中的第一天和最后一天
        int firstDay = calendar.getActualMinimum(Calendar.DAY_OF_MONTH);
        int lastDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

        // 打印日历头部
        System.out.println("日\t一\t二\t三\t四\t五\t六");

        // 将日期设置为月份中第一天
        calendar.set(Calendar.DAY_OF_MONTH, firstDay);

        // 获取第一天的星期数
        int weekday = calendar.get(Calendar.DAY_OF_WEEK) - 1;

        // 输出第一行空白日期
        for (int i = 0; i < weekday; i++) {
            System.out.print("\t");
        }

        // 输出日期
        for (int i = firstDay; i <= lastDay; i++) {
            System.out.print(i + "\t");

            // 如果是星期六,则换行
            if (calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY) {
                System.out.println();
            }

            // 将日期加1
            calendar.add(Calendar.DATE, 1);
        }
    }
}

该程序的核心思路是利用Calendar类来获取指定年份和月份的第一天和最后一天日期,然后利用循环来输出该月的所有日期,并且在每个星期六的时候换行。

示例1:输出2022年1月的日历

执行上述代码,会输出如下结果:

日   一   二   三   四   五   六
            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  

可以看到,该程序成功地输出了2022年1月的日历。

示例2:输出2021年12月的日历

修改程序中设置指定年份和月份的代码为:

calendar.set(Calendar.YEAR, 2021);
calendar.set(Calendar.MONTH, Calendar.DECEMBER);

重新执行程序,输出如下结果:

日   一   二   三   四   五   六
            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  

可以看到,该程序成功地输出了2021年12月的日历。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java基于Calendar类输出指定年份和月份的日历代码实例 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • 详解Java中Thread 和Runnable区别

    当开发多线程程序时,Java中有两种方式可以创建线程:继承Thread类或实现Runnable接口。虽然它们最终实现的目标是相同的,但它们之间仍然存在一些重要区别。本文将详细讲解Thread和Runnable的区别,让您在编写多线程程序时选择最佳方案。 一、继承Thread类 继承Thread类是创建线程的传统方式。这是通过继承Thread类并覆盖其中的ru…

    Java 2023年5月18日
    00
  • springboot前后台数据交互的示例代码

    下面我来给你详细讲解一下“springboot前后台数据交互的示例代码”的完整攻略。 前后台数据交互的概述 在使用SpringBoot开发Web应用时,我们需要前后台交互数据。为了实现这个目的,我们需要使用一些常见的技术框架: SpringMVC用于处理前台请求,MyBatis用于处理数据库操作,以及HTML、CSS、JavaScript等前端技术。 前后台…

    Java 2023年5月19日
    00
  • 详解Java函数式编程和lambda表达式

    详解Java函数式编程和lambda表达式 什么是函数式编程 函数式编程是一种编程范式,它主要关注于描述问题是什么,而不是如何解决问题。在函数式编程中,函数是一等公民,可以像其他对象一样传递和操作。函数式编程强调表达式求值,而不是计算机执行指令。 为什么使用函数式编程 函数式编程能够简化代码逻辑,减少依赖关系,增加可重用性。使用函数式编程可以更好地利用多核处…

    Java 2023年5月26日
    00
  • Spring各版本新特性的介绍

    Spring各版本新特性的介绍 Spring是目前Java开发中最常用的框架之一,每个版本都会引入新的特性和功能。本文将详细介绍Spring各版本的新特性。 Spring 5.x的新特性 异步编程 Spring 5.x 版本引入了响应式编程模型,支持异步编程。通过 WebFlux 模块,可以使用反应堆编程模型,并使用反应式 Streams API 处理异步事…

    Java 2023年5月19日
    00
  • Zend Studio for Eclipse的java.lang.NullPointerException错误的解决方法

    让我来详细讲解“Zend Studio for Eclipse的java.lang.NullPointerException错误的解决方法”的完整攻略。首先,我们需要明确的是,Java.lang.NullPointerException错误通常表示我们在使用一个空(Null)对象的时候,未能正确地进行判断,从而导致这个错误的出现。接下来,我将分享以下两条解决…

    Java 2023年5月27日
    00
  • java实现文件重命名的方法

    这里是“Java实现文件重命名的方法”的完整攻略,包含两条示例。 1. Java实现文件重命名的方法 Java提供了renameTo()方法来实现文件重命名。该方法位于Java File类中,其语法如下: public boolean renameTo(File dest) 其中dest为需要重命名后的文件路径。 该方法返回值为布尔型,如果重命名成功则返回t…

    Java 2023年5月19日
    00
  • Java利用IO流实现简易的记事本功能

    下面是Java利用IO流实现简易的记事本功能的完整攻略。 1. 确定功能需求 在实现记事本功能前,我们要确定需要实现哪些功能。一个简单的记事本功能,应该包括以下几个功能: 创建、打开、保存文本文件; 编辑文本内容; 查找、替换文本内容; 支持复制、粘贴、撤销、重做等基本操作。 2. 实现创建、打开、保存文本文件 在Java中,我们可以使用File类和IO流来…

    Java 2023年5月26日
    00
  • java实现学生宿舍系统

    Java实现学生宿舍系统的完整攻略 1. 概述 学生宿舍系统是一个管理学生宿舍的软件系统,主要包括学生信息管理、宿舍管理、卫生管理等子系统。本文将介绍如何使用Java语言来实现学生宿舍系统。 2. 安装Java开发环境 在开始实现学生宿舍系统之前,我们需要安装Java开发环境,推荐使用Eclipse或IntelliJ IDEA等集成开发环境。 3. 构建数据…

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部