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 2023年5月12日
    00
  • java事务的概念浅析

    接下来我将详细讲解“Java事务的概念浅析”的完整攻略。 Java事务的概念浅析 什么是事务 在计算机领域,事务是指一组对系统中数据的访问和更新操作,这组操作要么全都执行成功,要么全都不执行,保证了数据的一致性。事务是一种能够保证数据在一些列操作中的完整性和一致性的数据处理方式。 事务的ACID属性 在数据库中,事务必须同时具备ACID四个属性: 原子性(A…

    Java 2023年5月20日
    00
  • 教你开发脚手架集成Spring Boot Actuator监控的详细过程

    下面我将为您详细讲解“教你开发脚手架集成Spring Boot Actuator监控的详细过程”的完整攻略。 前言 在进行Spring Boot应用开发过程中,我们通常使用Spring Boot提供的Actuator来监控应用程序运行状况,但是每次开发都要重复搭建这个环境是非常浪费时间的,本文将教大家如何将Actuator融入开发的脚手架中,降低开发成本。 …

    Java 2023年6月3日
    00
  • AngularJS表单提交实例详解

    AngularJS是当前Web开发中最流行的JavaScript框架之一,其强大的表单处理功能被广泛使用。本文将从实例出发,详细讲解如何用AngularJS实现表单提交。 首先,我们需要在HTML中引入AngularJS 在使用AngularJS前,我们需要在HTML中引入相应的JS文件。可以从官网下载或使用CDN方式引入。 <script src=&…

    Java 2023年5月26日
    00
  • Java MyBatis框架环境搭建详解

    Java MyBatis框架环境搭建详解 1. 环境要求 在开始搭建MyBatis框架之前,需要确保计算机已经安装以下软件: JDK(Java Development Kit)— 最好是JDK8及以上版本。 Eclipse(或者其他的Java IDE)— 推荐使用最新版本。 Maven(或者其他的构建工具)— 推荐使用最新版本。 MySQL(或者其他关系型数…

    Java 2023年6月2日
    00
  • java 算法 6种排序小结

    Java算法6种排序小结 本文主要讲解Java中常用的6种排序算法:冒泡排序、选择排序、插入排序、快速排序、归并排序和堆排序。下面对每个算法进行详细介绍。 冒泡排序 冒泡排序是一种简单的排序算法,它的核心思想是将相邻的元素进行两两比较,根据大小关系进行交换,一直重复这个过程,直到所有元素都有序为止。 示例代码: public void bubbleSort(…

    Java 2023年5月19日
    00
  • 详解直接访问WEB-INF目录下的JSP页面的方法

    访问WEB-INF目录下的JSP页面需要通过Servlet进行转发,访问该目录下的资源时,URL地址栏中的文件名必须为Servlet指定的地址。下面是详解直接访问WEB-INF目录下的JSP页面的攻略。 第一步:编写Servlet 为了把WEB-INF目录中的JSP页面暴露出来,首先需要编写一个Servlet。在此Servlet的doGet方法中,可以获取到…

    Java 2023年6月15日
    00
  • springsecurity基于token的认证方式

    下面我将详细讲解一下“Spring Security基于Token的认证方式”的完整攻略。 什么是Token认证方式 Token认证方式,是一种基于令牌(Token)的身份认证方式。在客户端成功登录后,服务端会生成一个Token,这个Token会放到HTTP响应头中或者响应体中返回给客户端,客户端需要在后续的请求中携带该Token才能访问资源。 Token认…

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