2012-07-24 98 views
-3

所以我们可以说我有这样的代码:日历卷会环绕给定的年份,月份等吗?

//someParameterizedDate = New Years Eve 2011 
Calendar cal = new GregorianCalendar(); 
cal.setTime(someParameterizedDate); 
cal.roll(Calendar.DAY_OF_YEAR, 1); 

将日历现在等于2012年1月1日?我发现所有的JavaDocs有点混乱。

回答

4

java.util.Calendar

辊(F,增量)增加了增量到域F不更改更大的领域。 这相当于调用add(f,delta)与以下 调整:

滚动规则。通话结束后,较大的字段保持不变。较大的字段 代表较大的时间单位。 DAY_OF_MONTH是比 HOUR更大的字段。

你滚与DAY_OF_YEAR这意味着它不会影响MONTHYEAR这是更大的单位

因此,基本上,你应该让你2011年12月1日

您可以使用add如果你想让它去2012年1月1日

+0

谢谢你。真正有用。 – 2012-07-24 21:32:51