博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
日历类Calendar类的用法
阅读量:5799 次
发布时间:2019-06-18

本文共 1694 字,大约阅读时间需要 5 分钟。

hot3.png

我们可以用Date类来创建和格式化一个日期对象,但是我们如何才能设置和获取日期数据的特定部分呢,比如说小时,日,或者分钟?我们又如何在日期德这些部分加上或者是减去值呢?答案是使用Calendar类

1、Calendar有个子类GregorianCalendar

    它的功能非常强大。首先我们创建一个日历对 象。如:Calendar date = new GregorianCalendar();使用 date.getTime();方法可以获 得当前系统时间,返回表示时间值的Date。new GregorianCalendar()构造方法里面也可 以加入参数,如:new  GregorianCalendar(2000,month,day),获得给定时间的对象。

2、Calendar类有些字段比较有用

         DATE 指示一个月中的某天。
         DAY_OF_MONTH  指示一个月中的某天。
         DAY_OF_WEEK 指示一个星期中的某天。 
         DAY_OF_WEEK_IN_MONTH 指示当前月中的第几个星期。 
         DAY_OF_YEAR 指示当前年中的天数。

3、getActualMaximum();setActualMinimum();getMaximum();setMinimum();

       getActualMaximum()表示取得指定实际的日历字段的最大值,而getMaximum()表示取得指 定日历字段的最大值,如:日历字段是4月,那前者返回30,后者则返回31

 4、日期比较

        如:Calendar xmas = new GregorianCalendar(1998, Calendar.DECEMBER, 25);

        Calendar newyears = new GregorianCalendar(1999, Calendar.JANUARY, 1);
        如果xmas表示的日期在newyears之后,则b为true,反之false 
        boolean b = xmas.after(newyears); 
        如果xmas表示的日期在newyears之前,则b为true,反之false 
        b = xmas.before(newyears);  

5、年龄判断

        Calendar dateOfBirth = new GregorianCalendar(1972, Calendar.JANUARY, 27);

        建立当前日期的日历对象
        Calendar today = Calendar.getInstance();
        当前日期年份减去出生日期的年份
        int age = today.get(Calendar.YEAR) – dateOfBirth.get(Calendar.YEAR);
        出生日期的年份加上与当前日期年份的差数
        dateOfBirth.add(Calendar.YEAR, age);
        判断上面得出结果如果在当前日期之前,则age减1得到实际年龄,否则age就为实际年龄
        if (today.before(dateOfBirth)) 
        age—;

6、判断是否为闰年

        因为isleapYear()方法并不是继承Calendar类的方法,所以不能使用Calendar类作为声明

        GregorianCalendar cal = new GregorianCalendar();
        boolean b = cal.isLeapYear(1998); // false
        b = cal.isLeapYear(2000);         // true       

7、Calendar类里月份是从0开始的,即0表示1月,1表示2月,以次类推。 

        一周中第一天是 星期天,即1表示星期天,2表示星期一,以次类推。

8、add()方法

        add(int field,int amount);在指定的日历字段的基础上加上amount;如果现在是1月31 号,在month字段上+1,将得到2月28号,如果是闰年则为2月29日,他会对最大值做调整.

转载于:https://my.oschina.net/xiufeng/blog/98148

你可能感兴趣的文章
发现一个有意思的bbs网站,发现一个Waves开源项目
查看>>
《交互式程序设计 第2版》一3.2 Processing集成开发环境
查看>>
初试selenium用python做自动化测试
查看>>
《有效的单元测试》一1.1 国情咨文:编写更好的测试
查看>>
调查显示,66%的开发者选择在业余时间使用 Go
查看>>
《大规模元搜索引擎技(1)》一第2章 元搜索引擎体系结构
查看>>
《Python爬虫开发与项目实战》——1.4 进程和线程
查看>>
《CCNP安全Secure 642-637认证考试指南》——8.3节路由式数据面安全技术
查看>>
阿里巴巴推出企业诚信查询平台 cheng.xin
查看>>
《深入理解Elasticsearch(原书第2版)》一2.1.1 何时文档被匹配上
查看>>
《AutoCAD 2013中文版从入门到精通》——1.4 基本输入操作
查看>>
《计算复杂性:现代方法》——2.5 判定与搜索
查看>>
《告别失控:软件开发团队管理必读》一一第2章 理解程序员
查看>>
《CCNP ROUTE 300-101学习指南》——1.5节实施RIPng
查看>>
Kotlin 空降“上位”已满月,有对你带来变化吗?
查看>>
TIOBE 2015年11月编程语言排行,Java 超 20%
查看>>
iOS 在 Flash 中集成消息推送服务 【已翻译100%】
查看>>
《Adobe Premiere Pro CC经典教程》——第2课 设置项目 2.1 开始
查看>>
Mozilla 战略性投资隐私浏览器 Cliqz
查看>>
《编写高质量代码:改善c程序代码的125个建议》——建议6-1:掌握typedef的4种应用形式...
查看>>