Calendar日历类型常见方法

概括:

Calendar类是一个抽象类,它为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOUR等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。

1.get( )方法

 @Test
    public void getCalendar(){
        Calendar cal=Calendar.getInstance();
        //获取年
        System.out.println("年\t" + cal.get(Calendar.YEAR));
        //获取月
        System.out.println("月\t" + (cal.get(Calendar.MONTH)+1));  //月份从下标0开始 所以+1
        //获取日
        System.out.println("日\t" + cal.get(Calendar.DAY_OF_MONTH));
        //获取时
        System.out.println("时\t" + cal.get(Calendar.HOUR_OF_DAY));
        //获取分
        System.out.println("分\t"+ cal.get(Calendar.MINUTE));
    }

运行效果如下:

年 2023
月 11
日 23
时 11
分 42

2、set( ) 设置时间

 @Test
    public  void setCalendar(){
        Calendar cal=Calendar.getInstance();
        System.out.println("当前时间"+cal.getTime());
        cal.set(2023,11,11);//设置日期
        System.out.println("set设置的时间"+cal.getTime());

        //当读赋值 设置年月日...
        Calendar cal1=Calendar.getInstance();
        cal1.set(Calendar.YEAR,2022);
        cal1.set(Calendar.MONTH,12);
        cal1.set(Calendar.DATE,12);
        System.out.println("set分别赋值的时间"+cal1.getTime());
    }

运行效果:

当前时间Fri Nov 24 15:58:27 CST 2023
set设置的时间Mon Dec 11 15:58:27 CST 2023
set分别赋值的时间Thu Jan 12 15:58:27 CST 2023

3、常用的add方法

 @Test
    public void addCalendar(){
        Calendar cld=Calendar.getInstance();
        cld.set(2023,11,11);//设置日期
        cld.add(Calendar.YEAR,1);  //增加一年
        System.out.println(cld.getTime());
    }

效果如下:

Wed Dec 11 16:02:05 CST 2024

4、after()方法表示的时间是否在指定时间之后, before( ) 方法则之前, 返回判断结果

@Test
    public void afterCalendarBefore() {
        // 获取当前时间
        Calendar cld = Calendar.getInstance();
        // 设置指定时间
        cld.set(2024, 12, 12);
        Calendar cld2 = Calendar.getInstance();
        cld2.set(2023, 12, 12);
        // 获取指定时间的字符串
        String time1 = cld.get(Calendar.YEAR) + "-" + cld.get(Calendar.MONTH) + "-" + cld.get(Calendar.DAY_OF_MONTH);
        String time2 = cld2.get(Calendar.YEAR) + "-" + cld2.get(Calendar.MONTH) + "-" + cld2.get(Calendar.DAY_OF_MONTH);
        // 判断cld是否在cld2之后 反则之前
        if (cld.after(cld2)) {
            System.out.println("cld日期\t" + time1 + "在cld2日期\t" + time2 + "之后");
        }else if(cld.before(cld2)) {
            System.out.println("cld日期\t" + time1 + "在cld2日期\t" + time2 + "之前");
        }
    }

效果如下:

cld日期 2025-0-12在cld2日期 2024-0-12之后

4.1、compareTo比较器

使用Calendar的compareTo()方法:Calendar类实现了Comparable接口,因此可以直接使用compareTo()方法来比较两个Calendar对象的日期和时间。该方法返回一个整数,表示两个Calendar对象的比较结果。

@Test
   public  void compareTo(){
        // 创建两个日历对象
        Calendar cal1 = Calendar.getInstance();
        Calendar cal2 = Calendar.getInstance();
        // 设置日历2的日期为2023年10月12日
        cal2.set(2023,10,12);
        // 比较两个日历对象的日期大小
        int result = cal1.compareTo(cal2);
        // 根据比较结果输出信息
        if (result < 0) {
            System.out.println(cal1.getTime() + " 在 " + cal2.getTime() + " 之前");
        } else if (result > 0) {
            System.out.println(cal1.getTime() + " 在 " + cal2.getTime() + " 之后");
        } else {
            System.out.println(cal1.getTime() + " 与 " + cal2.getTime() + " 相同");
        }
    }

输出结果如下:

Fri Nov 24 19:07:32 CST 2023 在 Sun Nov 12 19:07:32 CST 2023 之后

  • 18
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
calendar模块是Python中的一个内置模块,用于处理日期和时间相关的操作。它包含了一些函数和类,可以方便地生成各种格式的日历。 如果想要输出指定年份的日历,可以使用calendar模块中的函数。为了了解该模块的使用方法,可以通过查看它的帮助文档来获得相关信息。 首先,我们可以使用help()函数来查看calendar模块的帮助文档。在Python交互式环境中输入以下代码: ```python import calendar help(calendar) ``` 执行以上代码后,会显示出calendar模块的帮助文档。其中可以看到常用的函数包括`calendar.calendar()`、`calendar.prmonth()`、`calendar.month()`等,它们分别用于打印整年、整月的日历。 针对需求,我们可以使用`calendar.calendar()`函数来生成指定年份的日历。具体做法是从键盘输入年份,并将其作为参数传递给`calendar.calendar()`函数。以下是示例代码: ```python import calendar year = int(input("请输入年份:")) print(calendar.calendar(year)) ``` 以上代码中,首先通过`input()`函数从键盘输入一个年份,并将其转换为整数类型。然后通过`calendar.calendar(year)`将指定年份的日历打印出来。 这样就实现了通过calendar模块从键盘输入年份,并输出该年份的日历的功能。需要注意的是,calendar模块还提供了很多其他函数,可以根据具体需求进行选择和使用。希望以上解答对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值