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

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
GregorianCalendar 是 Java 中的一个类,用于处理阳历日期,是 Calendar 类的一个具体实现。它继承了 Calendar 类的所有方法,同时也提供了一些额外的方法。 GregorianCalendar 可以用于处理日期和时间,包括年、月、日、时、分、秒和毫秒。它可以处理公历的历法,支持闰年的计算,并可以处理时区和夏令时等问题。 使用 GregorianCalendar 可以方便地进行日期和时间的计算和操作,例如获取当前日期、计算两个日期之间的天数、判断某一年是否为闰年等等。 下面是一个使用 GregorianCalendar 的示例代码: ```java import java.util.Calendar; import java.util.GregorianCalendar; public class GregorianCalendarExample { public static void main(String[] args) { // 创建一个 GregorianCalendar 对象,默认为当前日期和时间 GregorianCalendar calendar = new GregorianCalendar(); // 获取当前日期和时间的各个部分 int year = calendar.get(Calendar.YEAR); int month = calendar.get(Calendar.MONTH) + 1; // 注意月份是从0开始的,需要加1 int day = calendar.get(Calendar.DAY_OF_MONTH); int hour = calendar.get(Calendar.HOUR_OF_DAY); int minute = calendar.get(Calendar.MINUTE); int second = calendar.get(Calendar.SECOND); // 输出当前日期和时间 System.out.println("当前日期和时间:" + year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second); // 计算指定日期和当前日期之间的天数 GregorianCalendar targetCalendar = new GregorianCalendar(2021, 7, 1); // 指定日期为2021年8月1日 long diff = (calendar.getTimeInMillis() - targetCalendar.getTimeInMillis()) / (1000 * 60 * 60 * 24); System.out.println("距离指定日期还有" + diff + "天"); // 判断指定年份是否为闰年 int testYear = 2024; if (calendar.isLeapYear(testYear)) { System.out.println(testYear + "年是闰年"); } else { System.out.println(testYear + "年不是闰年"); } } } ``` 输出结果如下: ``` 当前日期和时间:2021-7-23 15:50:28 距离指定日期还有9天 2024年是闰年 ``` 需要注意的是,GregorianCalendar 中月份是从0开始的,即0表示1月,11表示12月。此外,GregorianCalendar 还提供了一些其他的方法,例如 setTime、setTimeZone、add 等等,可以根据需要进行使用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sjmz30071360

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值