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("不是闰年");
            }
        }
    }

    运行结果:

  • 相关阅读:
    MS CRM 2011的自定义和开发(10)——CRM web服务介绍(第一部分)——IDiscoveryService
    MS CRM 2011的自定义和开发(7)——视图编辑器(第二部分)
    MS CRM 2011 SDK 5.06版本已经发布
    MS CRM 2011的自定义和开发(11)——插件(plugin)开发(一)
    近来遇到的MS CRM 2011方面的几个问题
    MS CRM 2011的自定义与开发(6)——表单编辑器(第二部分)
    Microsoft Dynamics CRM 2011中,Lookup字段的赋值
    MS CRM 2011的自定义和开发(6)——表单编辑器(第三部分)
    Visual Studio 目标框架造成 命名空间“Microsoft”中不存在类型或命名空间名称“Crm”。是否缺少程序集引用中错误的处理
    一步步学习Reporting Services(二) 在报表中使用简单的参数作为查询条件
  • 原文地址:https://www.cnblogs.com/Zs-book1/p/10564496.html
Copyright © 2011-2022 走看看