`

GregorianCalendar add, roll方法

 
阅读更多

 

细细体味 roll 和 add 的区别

 

直接上代码:

 

Using roll method

Case 1:

        GregorianCalendar cal = new GregorianCalendar();
        cal.set(Calendar.YEAR, 2012);
        cal.set(Calendar.MONTH, Calendar.FEBRUARY);
        cal.set(Calendar.DAY_OF_MONTH, 29);
        System.out.println(cal.getTime());                ==> Wed Feb 29 16:44:30 SGT 2012
        cal.roll(Calendar.DAY_OF_YEAR, true);
        System.out.println(cal.getTime());                ==> Thu Mar 01 16:44:30 SGT 2012

 

Case 2:

        GregorianCalendar cal = new GregorianCalendar();
        cal.set(Calendar.YEAR, 2012);
        cal.set(Calendar.MONTH, Calendar.FEBRUARY);
        cal.set(Calendar.DAY_OF_MONTH, 29);
        System.out.println(cal.getTime());                ==> Wed Feb 29 16:48:14 SGT 2012
        cal.roll(Calendar.DAY_OF_MONTH, true);
        System.out.println(cal.getTime());                ==> Wed Feb 01 16:48:14 SGT 2012

 

Case 3:

        GregorianCalendar cal = new GregorianCalendar();
        cal.set(Calendar.YEAR, 2012);
        cal.set(Calendar.MONTH, Calendar.DECEMBER);
        cal.set(Calendar.DAY_OF_MONTH, 31);
        System.out.println(cal.getTime());                ==> Mon Dec 31 16:50:12 SGT 2012
        cal.roll(Calendar.DAY_OF_MONTH, true);
        System.out.println(cal.getTime());                ==> Sat Dec 01 16:50:12 SGT 2012

 

Case 4:

        GregorianCalendar cal = new GregorianCalendar();
        cal.set(Calendar.YEAR, 2012);
        cal.set(Calendar.MONTH, Calendar.DECEMBER);
        cal.set(Calendar.DAY_OF_MONTH, 31);
        System.out.println(cal.getTime());                ==> Mon Dec 31 16:52:44 SGT 2012
        cal.roll(Calendar.DAY_OF_YEAR, true);
        System.out.println(cal.getTime());                ==> Sun Jan 01 16:52:44 SGT 2012

 

================================================================

Using add method

Case 1:

        GregorianCalendar cal = new GregorianCalendar();
        cal.set(Calendar.YEAR, 2012);
        cal.set(Calendar.MONTH, Calendar.FEBRUARY);
        cal.set(Calendar.DAY_OF_MONTH, 29);
        System.out.println(cal.getTime());                ==> Wed Feb 29 16:55:01 SGT 2012
        cal.add(Calendar.DAY_OF_YEAR, 1);
        System.out.println(cal.getTime());                ==> Thu Mar 01 16:55:01 SGT 2012

 

Case 2:

        GregorianCalendar cal = new GregorianCalendar();
        cal.set(Calendar.YEAR, 2012);
        cal.set(Calendar.MONTH, Calendar.FEBRUARY);
        cal.set(Calendar.DAY_OF_MONTH, 29);
        System.out.println(cal.getTime());                ==> Wed Feb 29 16:57:06 SGT 2012
        cal.add(Calendar.DAY_OF_MONTH, 1);
        System.out.println(cal.getTime());                ==> Thu Mar 01 16:57:06 SGT 2012

 

Case 3:

        GregorianCalendar cal = new GregorianCalendar();
        cal.set(Calendar.YEAR, 2012);
        cal.set(Calendar.MONTH, Calendar.DECEMBER);
        cal.set(Calendar.DAY_OF_MONTH, 31);
        System.out.println(cal.getTime());                ==> Mon Dec 31 16:59:12 SGT 2012
        cal.add(Calendar.DAY_OF_MONTH, 1);
        System.out.println(cal.getTime());                ==> Tue Jan 01 16:59:12 SGT 2013

 

Case 4:

        GregorianCalendar cal = new GregorianCalendar();
        cal.set(Calendar.YEAR, 2012);
        cal.set(Calendar.MONTH, Calendar.DECEMBER);
        cal.set(Calendar.DAY_OF_MONTH, 31);
        System.out.println(cal.getTime());                ==> Mon Dec 31 16:59:48 SGT 2012
        cal.add(Calendar.DAY_OF_YEAR, 1);
        System.out.println(cal.getTime());                ==> Tue Jan 01 16:59:48 SGT 2013

 

 

 

分享到:
评论

相关推荐

    java API 在包java.util中有一个GregorianCalendar类,使用它可以得到一年内某个月的日历.zip

    此外,`GregorianCalendar`还提供了添加和减去日期字段的方法,如`add`和`roll`。如果你想获取下一个月的日期,可以这样操作: ```java calendar.add(Calendar.MONTH, 1); // 添加1个月 ``` 在`Exercise6_6.java`...

    获取当月的第一天和最后一天

    3. 使用`roll`方法将日期回滚一天。 4. 调用`getTime()`方法获取`Date`对象。 5. 使用`SimpleDateFormat`将`Date`对象格式化为字符串。 示例代码如下: ```java SimpleDateFormat datef = new SimpleDateFormat(...

    java日期转化操作大全.pdf

    它同样继承了Calendar类的add()、set()、roll()等方法,并提供了特有的方法如getTime()和getTimeInMillis()。 java.text.DateFormat类为日期和时间的格式化和解析提供了工具。它支持日期时间的多种格式,适用于多种...

    java中的循环日期.docx

    add() 方法用于将指定的日历字段增加或减少指定的值,而 roll() 方法用于将指定的日历字段增加或减少指定的值,但不会改变其他日历字段的值。 ```java SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); ...

    java中的循环日期.pdf

    add() 方法是将指定的时间量添加到 Calendar 对象上,而 roll() 方法是将指定的时间量滚动到 Calendar 对象上。代码示例如下: ```java SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); Calendar cal = ...

    日历calendar详细代码

    1. **实例化**:由于`Calendar`是抽象类,不能直接实例化,通常我们通过`Calendar.getInstance()`静态方法获取一个具体的`Calendar`实例,如`GregorianCalendar`。 2. **设置日期**:`set`方法用于设置年、月、日、...

    Head First Java 中文高清版 下

    使用Calendar类的实例,可以通过调用add()和roll()方法来完成这些高级操作。 5. 本地化:Calendar类在设计时考虑到了国际化和本地化的需求。这意味着,当你从Calendar获取一个实例时,这个实例是按照调用者的地区...

    java日历

    通常,我们需要通过`getInstance()`静态方法获取一个具体类型的日历实例,如公历(GregorianCalendar)。例如: ```java Calendar calendar = Calendar.getInstance(); ``` `Calendar`类提供了丰富的API来操作日期...

    Java Calendar类的使用总结实例

    roll方法可以将当前日期和时间的某个组成部分增加或减少指定的值,而不影响其他组成部分。 在实际应用中,Calendar类可以用于许多场景,例如记录用户登陆的时间、显示当前日期和时间、计算两个日期之间的差异等。...

    java 编写的 日历 实现源码

    `add()`方法可以增加或减少某个日期字段的值,而`roll()`方法则会在保持其他字段不变的情况下增加或减少一个字段。 ```java calendar.add(Calendar.DAY_OF_MONTH, 1); // 向后加一天 calendar.roll(Calendar....

    java日历各种写法

    `Calendar`类还提供了诸如获取周几(`get(Calendar.DAY_OF_WEEK)`)、获取一年中的第几天(`get(Calendar.DAY_OF_YEAR)`)等功能,以及调整日期(`roll()`方法)和判断闰年(`isLeapYear()`方法)等。 总之,Java的...

    基于Java的Calendar万年历.zip

    它是一个抽象类,不能直接实例化,而是通过`Calendar.getInstance()`方法获取其子类的实例,通常是`GregorianCalendar`,它是公历的实现。 以下是关于Java `Calendar`类的一些关键知识点: 1. **实例化**:如前所...

    java源码:Calendar万年历.zip

    `Calendar`类是抽象类,实际使用时通常会通过`getInstance()`方法获取其子类`GregorianCalendar`的实例。 首先,让我们深入了解一下`Calendar`类。`Calendar`是Java日期和时间API的核心类,提供了与日期和时间相关...

    Java时间日期处理相关文档收藏

    `Calendar`提供了添加、减去日期字段的方法,如`add()`和`roll()`。 3. `java.time`包:自Java 8引入的新时间日期API,它提供了更加直观和易用的接口。主要的类有`LocalDate`、`LocalTime`、`LocalDateTime`、`...

    java时间 java.util.Calendar深入分析

    - `roll(int field, boolean up)`:滚动某个时间字段,保持其他字段不变。 这些方法允许开发者灵活地创建、修改和比较日期时间,满足各种需求。 总之,`java.util.Calendar`是Java中处理日期和时间的核心类,通过`...

    calendar-source-code.rar_Java编程_Java_

    9. **迭代日期:** 可以使用`roll()`方法在一个日期字段内进行迭代,例如在一个月内的所有日期之间循环。 10. **国际化:** `Calendar`支持国际化,可以处理不同文化背景下的日期格式和习惯。 在压缩包中,可能...

Global site tag (gtag.js) - Google Analytics