zoukankan      html  css  js  c++  java
  • java学习笔记17(Calendarl类)

    Calendar类:(日历)

      用法:Calendar是一个抽象类;不能实例化(不能new),使用时通过子类完成实现,不过这个类不需要创建子类对象,而是通过静态方法直接获取;

      获取对象方法:getInstance();

      getInstance()方法:官方文档:使用默认时区和语言环境获得一个日历。

        getInstance(Locale aLocale)   使用默认时区和指定语言环境获得一个日历。

        getInstance(TimeZone zone)     使用指定时区和默认语言环境获得一个日历。

        getInstance(TimeZone zone, Locale aLocale)    使用指定时区和语言环境获得一个日历。

    示例:

    public class Demo1 {
        public static void main(String[] args) {
            Calendar ca=Calendar.getInstance();//创建一个日历的对象ca;通过getInstance()方法创建日历对象,
            System.out.println(ca);
            /*输出结果:
             * java.util.GregorianCalendar[time=1553060892101,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=1,HOUR_OF_DAY=13,MINUTE=48,SECOND=12,MILLISECOND=101,ZONE_OFFSET=28800000,DST_OFFSET=0]
             */
            /*输出结果我们可以看出,里边有很多东西,我们可以大致辨认出第三行有YEAR=2019,MONTH=2,
             * WEEK_OF_YEAR=12,WEEK_OF_MONTH=4,DAY_OF_MONTH=20,DAY_OF_YEAR=79,
             * 意思是2019年,3月(Calendar中默认的是0-11月,所以实际月份要加1),一年的第12周,一个月的第四个星期,一个月的第20天,一年的第79天,一周的第四天(美国默认一周的周日是一星期的开始)
             * */
        }
    }

    为了把上面运行结果显示出来,只显示我们想要的,会用到一些方法:

    get方法:

    import java.util.Calendar;
    
    public class Demo2 {
        public static void main(String[] args) {
            Calendar ca=Calendar.getInstance();
            int year=ca.get(Calendar.YEAR);//获得ca日历年份
            int month=ca.get(Calendar.MONTH)+1;//获得月份,日历默认月份0-11月,所以要加1才是是实际月份;
            int day=ca.get(Calendar.DAY_OF_MONTH);//获得天数
            System.out.println(year+"年"+month+"月"+day+"日");//2019年3月20日
        }
    }

    set()方法:

    public class Demo3 {
        public static void main(String[] args) {
            Calendar ca=Calendar.getInstance();//创建日历ca
            Date d=ca.getTime();//getTime()方法: 返回一个表示此 Calendar 时间值(从历元至现在的毫秒偏移量)的 Date 对象。
            System.out.println(d);//输出时间:Wed Mar 20 14:35:19 CST 2019
            ca.set(1996, 6, 27);//set(year, month, date);设置日历的年月日
            Date d1=ca.getTime();
            System.out.println(d1);//Sat Jul 27 14:38:23 CST 1996
        }
        /*可以看出日历的时间变了,set方法将日历的时间改为了1996年6月27日*/
    }

    add方法:官方资料:add(int field, int amount) 根据日历的规则,为给定的日历字段添加或减去指定的时间量。

    import java.util.Calendar;
    
    public class Demo {
        public static void main(String[] args) {
            Calendar ca=Calendar.getInstance();
            getdate(ca);//2019-2-20
            ca.add(Calendar.YEAR, 1);//年份加一
            getdate(ca);//2020-2-20
            ca.add(Calendar.MONTH, 4);//月份加四
            getdate(ca);//2020-7-20
            ca.add(Calendar.DAY_OF_MONTH, -10);//日期减十天
            getdate(ca);//2020-7-10
        }
        private static void getdate(Calendar ca) {
            // 创建显示日期方法,将日历变为容易观察的样式,方便上面调用查看
            System.out.println(ca.get(Calendar.YEAR)+"-"+(ca.get(Calendar.MONTH)+1)+"-"+ca.get(Calendar.DAY_OF_MONTH));
        }
    }

    Calendar类综合练习:

    计算闰年:

    import java.util.Calendar;
    import java.util.Scanner;
    
    public class Demo4 {
        public static void main(String[] args) {
            Calendar c=Calendar.getInstance();//getInstance()方法:
            System.out.println("请输入年份:");
            int year=new Scanner(System.in).nextInt();
            c.set(year, 2, 1);//set()设置日历字段年月日,在日历中是0-11月,所以这里写的是二月,实际日期是3月一日,本句中设置日历c为3月1日;
            c.add(Calendar.DAY_OF_MONTH, -1);//add根据日历的规则,为指定日历字段添加或减去指定的时间量,本句中给c日历当前日期减去一天;
            int day=c.get(Calendar.DAY_OF_MONTH);//定义变量day接收c当前的日期;DAY_OF_MONTH指定一个月中的某天
            if(day==29){
                System.out.println("是闰年");
            }else{
                System.out.println("不是闰年");
            }
        }
    }

    运行结果:

  • 相关阅读:
    测开之路九十九:js函数、事件、window窗体对象
    测开之路九十八:js变量和语句
    测开之路九十七:js的引用方式
    学生管理之登录实现
    学生管理之表单设计
    二、Django用户认证之cookie和session
    一、Django前后端交互之Ajax和跨域问题
    中间介
    Java SE之反射技术[Class](三)
    Java SE之反射技术[Field](二)
  • 原文地址:https://www.cnblogs.com/Zs-book1/p/10564496.html
Copyright © 2011-2022 走看看