Calendar 类的 add() 和roll方法详解

来源:互联网 发布:泰州学院教务网络系统 编辑:程序博客网 时间:2024/06/05 22:38
API解释:

 一、add()
         public abstract void add(int field, int amount)
     field - 日历字段
     amount - 为字段添加的日期或时间量。
     含义:
          根据日历的规则,为给定的日历字段添加或减去指定的时间量。
     举例:
          要从当前日历时间减去 5 天,可以通过调用以下方法做到这一点:
          add(Calendar.DAY_OF_MONTH, -5)。

二、roll()
     public abstract void roll(int field,boolean up)
field :时间字段。
up :指示指定时间字段的值是向上滚动还是向下滚动。如果向上滚动,则使用 true,否则使用 false。

含义:
      在给定的时间字段上添加或减去(上/下)单个时间单元,不更改更大的字段。
举例:
      要将当前日期向上滚动一天,可以通过调用以下方法做到这一点:
      roll(Calendar.DATE, true)。
注意:
在 year 或 Calendar.YEAR 字段上滚动时,将在从 1 到调用 getMaximum(Calendar.YEAR) 的返回值之间的范围内滚动 year 值。在 month 或 Calendar.MONTH 字段上滚动时,其他字段(如 date)可能发生冲突,因此需要更改它们。例如,在日期 01/31/96 上滚动 month 将产生 02/29/96 的日期。在 hour-in-day 或 Calendar.HOUR_OF_DAY 字段上滚动时,小时值会在 0 到 23 之间的范围内滚动,它是基于 0 的。


public void roll(int field,  int amount)
field - 日历字段。
amount - 要添加到日历 field 中的有符号时间量。
含义:
      向指定日历字段添加指定(有符号的)时间量,不更改更大的字段。负的时间量意味着向下滚动。
注意:

如果 DAY_OF_MONTH 字段为 31,则在 February 的范围内滚动会将它设置为 28。此函数的 GregorianCalendar 版本会小心地处理这个问题。其他子类还应该提供此函数的重写版本,以正确实现该功能。

0 0