Calendar介绍

Calendar

Calendar是一个抽象类,被abstract所修饰,这也决定了它不能通过new来获取实例对象。
Calendar提供了一个getInstance的方法,获得一个子类对象,因为每个国家地区都有自己的日历算法

public static void fun(){
	public static void main(String[] args){
		//获得当前地区日历子对象
		Calendar c=Calendar.getInstance();
		System.out.println(c);
		//把日历对象转为Date日期对象
		Date time=c.getTime();
	 	System.out.println(time);
	}
 }

显示结果:

java.util.GregorianCalendar[time=1553069516252,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2019,MONTH=2,WEEK_OF_YEAR=12,WEEK_OF_MONTH=4,DAY_OF_MONTH=20,DAY_OF_YEAR=79,DAY_OF_WEEK=4,DAY_OF_WEEK_IN_MONTH=3,AM_PM=1,HOUR=4,HOUR_OF_DAY=16,MINUTE=11,SECOND=56,MILLISECOND=252,ZONE_OFFSET=28800000,DST_OFFSET=0]
Wed Mar 20 16:11:56 CST 2019

下面介绍几种Calendar的几种方法

  1. set()
    设置日历set(int field,int value)
 public static void fun2(){
	 public static void main(String[] args){
	   Calendar c=Calendar.getInstance();
	        //设置月份到十月份
	        //c.set(Calendar.MONTH,9);
	        //设置一个日期2022-2-20
	        c.set(2022,2,20);
	        //获取设置的日期
	        int year=c.get(Calendar.YEAR);
	        int month=c.get(Calendar.MONTH)+1;
	        int day=c.get(Calendar.DAY_OF_MONTH);
	        System.out.println(year+"年"+month+"月"+day+"日");
	}  
 }

显示结果:

2022年3月20日
  1. get()
    获取日历字段的值 是int类型
 public static void fun1(){
      public static void main(String[] args){
      	  Calendar c=Calendar.getInstance();
        //获取当前的年月日
        int year=c.get(Calendar.YEAR);
        //获取到的月份比真实月份小1,要进行+1操作
        int month=c.get(Calendar.MONTH)+1;
        int day=c.get(Calendar.DAY_OF_MONTH);
        System.out.println(year+"年"+month+"月"+day+"日");
      }
    }

显示结果:

2019年3月20日
  1. add()
    日历偏移量
 public static void fun3(){
       public static void main(String[] args){
       	 //获取当前日历子类对象
        Calendar c=Calendar.getInstance();
        //对于向前日期往后偏移310天,如果添上负号-,则代表往前偏移
        c.add(Calendar.DAY_OF_MONTH,310);
        //获取偏移后的年份
        int year=c.get(Calendar.YEAR);
        //偏移后的月份,因为获取到的月份比真实月份小1的,所以要+1操作
        int month=c.get(Calendar.MONTH)+1;
        //获取偏移后的月份日数
        int day=c.get(Calendar.DAY_OF_MONTH);
        System.out.println(year+"年"+month+"月"+day+"日");
       }
 }

显示结果:

2020年1月24日

小练习
判断是否是闰年

package cn.chang.Demo2;

import java.util.Calendar;

//判断某一年份是否为闰年
思想      先设置某一年的三月一号  然后往前偏移一天,获取偏移后月份(也就是二月)的天数和28比较,相等是平年,不相等就是闰年
public class LeapYear {
    public static void main(String[] args){
        Calendar c=Calendar.getInstance();
        //设置一个年份的三月一号,这里以2019年为例
        c.set(2019,2,1);
        //往前偏移一天
        c.add(Calendar.DAY_OF_MONTH,-1);
        //get 获取偏移后月份的天数
        int day=c.get(Calendar.DAY_OF_MONTH);
        System.out.println(day);
        if(day==28){
            System.out.println("该年是平年");
        }else{
            System.out.println("该年是闰年");
        }
    }
}

显示结果:

28
该年是平年
  • 16
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值