首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >日历add() vs roll()我们什么时候使用它?

日历add() vs roll()我们什么时候使用它?
EN

Stack Overflow用户
提问于 2010-03-23 22:41:47
回答 4查看 44.3K关注 0票数 52

我知道add()根据日历的规则将指定的(签名)时间量添加到给定的时间字段。

roll()在给定的时间域上添加指定的(有符号的)单个时间单位,而不更改更大的字段。

我想不出roll()的日常用法,我会用add()做所有的事情。

你能帮我举个例子吗?我们什么时候使用roll(),什么时候使用add()

编辑1

Joda的答案不被接受!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-03-23 23:02:23

  • add() --就像你说的,几乎总是
  • roll() --例如,您希望在一个月内“分发”事件。算法可能是进行若干天并放置事件,然后继续进行。到月底的时候,就应该从头开始。因此,roll()
票数 54
EN

Stack Overflow用户

发布于 2010-03-23 23:27:43

jGuru中发现

  • Calendar.roll() 更改一个特定的单位,并保持“较大”单位(就时间而言,月比日大)单位不变。API示例是,给定1999年8月31日的日期,滚动(Calendar.MONTH,8)将产生1999年4月30日的收益。也就是说,这一天是为了达到4月的最大值而改变的,但“更大的”单位--年份--却没有变化。

roll(): Rolls up 8 months here i.e., adding 8 months to Aug will result in Apr but year remains unchanged(untouched).

  • Calendar.add() 将导致下一个“较大的”单位改变,如果必要的话。也就是说,考虑到1999年8月31日这一天,加上(Calendar.MONTH,8)将产生2000年4月30日的收益。add()还强制重新计算毫秒和所有字段。

add(): Adds months to the current date i.e., adding 8 months to Aug will give Apr of Next Year, hence forces the Year change.

票数 33
EN

Stack Overflow用户

发布于 2012-02-20 13:04:11

我只是问了同样的问题(这就是我是如何找到这一页的),在我工作的地方有人(干得好,DCK)提出了一个建议:

许多智能手机上的日期选择器(和其他类似的接口)将“滚动”从第31天到第1天,而不改变月份,同样适用于月份字段。

我想不出另一种使用自动取款机的方式,这个可以用其他方式实现,但至少这是一个例子!

时间

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2504141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档