Java 中Calendar日历类的基本使用

Posted 路宇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 中Calendar日历类的基本使用相关的知识,希望对你有一定的参考价值。

Calendar介绍:

Calendar类为某一时刻和一组日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法。

Calendar提供了一个类方法getInstance用于获取Calendar对象,其日历字段已使用当前日期和时间初始化。

下面代码中给出Calendar类常用的方法,详细注释已经在代码中给出:

public class CalendarDemo 
    public static void main(String[] args) 
        //获取Calendar对象
        Calendar calendar = Calendar.getInstance(); //多态的形式得到的对象
//        System.out.println(calendar);

        //public int get(int field)  返回给定日历字段的值
//        int year = calendar.get(Calendar.YEAR);
//        int month = calendar.get(Calendar.MONTH) + 1; //月份是从零开始的
//        int date = calendar.get(Calendar.DATE);
//        System.out.println(year + "年 " + month + "月 " + date + "日"); //2021年 1130日

        //需求1  3年前的今天
        //根据日历的规则,将指定的时间量添加或减去给定的日历字段
//        calendar.add(Calendar.YEAR,-3);
//        int year = calendar.get(Calendar.YEAR);
//        int month = calendar.get(Calendar.MONTH) + 1; //月份是从零开始的
//        int date = calendar.get(Calendar.DATE);
//        System.out.println(year + "年 " + month + "月 " + date + "日");//2018年 1130日

        //需求2  10年后的5天前
//        calendar.add(Calendar.YEAR, 10);
//        calendar.add(Calendar.DATE, -5);
//
//        int year = calendar.get(Calendar.YEAR);
//        int month = calendar.get(Calendar.MONTH) + 1; //月份是从零开始的
//        int date = calendar.get(Calendar.DATE);
//        System.out.println(year + "年 " + month + "月 " + date + "日");  //2031年 1125日

        //设置当前日历的年月日
        calendar.set(2025,11,30);
        int year = calendar.get(Calendar.YEAR);
        int month = calendar.get(Calendar.MONTH) + 1; //月份是从零开始的
        int date = calendar.get(Calendar.DATE);
        System.out.println(year + "年 " + month + "月 " + date + "日");  //2025年 1230

练习,获取任意年份2月份有多少天?

public class CalendarTest 
    public static void main(String[] args) 
        //键盘输入任意的年份
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入年份:");
        int year = sc.nextInt();

        Calendar calendar = Calendar.getInstance();
        //设置日历对象的年,月,日
        calendar.set(year, 2, 1);

        //3月1日往前推一天,就是2月的最后一天
        calendar.add(Calendar.DATE, -1);
        //获取这一天输出即可
        int day = calendar.get(Calendar.DATE);
        System.out.println(year + "年的2月份有" + day + "天");
    

输出结果:

以上是关于Java 中Calendar日历类的基本使用的主要内容,如果未能解决你的问题,请参考以下文章

java中日历类:Calendar

java中的calender类如何使用

在Java中如何用calendar类输入年和月份打印当月的日历

关于JAVA中calendar.get(Calendar.Year)的问题

Java打印日历表

Java Calendar 类的时间操作