• Calendar中add函数和roll函数的用法及区别


    Calendar中add()和roll()函数的用法
    一、取某个时间点后的整点时刻。例如1984年7月7日15:23:05后的整点时刻即为1984-07-07 16:00:00。
    实现如下:
    Calendar calendar = Calendar.getInstance();
    calendar.add(Calendar.HOUR_OF_DAY, 1);//小时上加1
    calendar.set(Calendar.MINUTE, 0);//分钟设为0
    calendar.set(Calendar.SECOND, 0);//秒钟设为0

    二、取某个日历之前的某个月。例如要取2002年1月12号之前1个月的时间,应该是2001年12月12日。
    Calendar calendar = Calendar.getInstance();
    calendar.set(2002, 0, 12);//代表2002年1月12日
    calendar.add(Calendar.MONTH, -1);//这样就将日期设置成了2001年12月12日。
    System.out.println(calendar.getTime().toString());

    但是这种情况如果用roll()来实现。如以下代码:
    Calendar calendar = Calendar.getInstance();
    calendar.set(2002, 0, 12);//代表2002年1月12日
    calendar.roll(Calendar.MONTH, -1);//这样就将日期设置成了2002年12月12日。
    System.out.println(calendar.getTime().toString());

    结论:roll()函数处理,只会相应的字段进行处理不会智能的对其它字段也进行逻辑上的改变。
            add()函数会在逻辑上改变其它字段,使结果正确。

    注:Calendar中的Month是从0-11的,0代表1月,11代表12月。

    http://blog.sina.com.cn/s/blog_62c89b450100sau9.html

  • 相关阅读:
    如何生成不规则形状的mask,以解决对图像不规则区域设置ROI的问题
    数字图像处理学习1
    opencv显示图像
    Calling Matlab Neural Network From Other EXE's
    这个百度文档很给力
    opencv不规则ROI——圆形ROI
    问题修改
    skinsmagic美化MFC界面
    第一次使用思维导图
    libsvm使用介绍中文版
  • 原文地址:https://www.cnblogs.com/softidea/p/5767912.html
Copyright © 2020-2023  润新知