了解日历类中的roll方法

时间:2014-07-20 02:11:26

标签: java date calendar

如果今天的日期是2014年7月19日 然后我的代码工作如下:

Calendar c = Calendar.getInstance();

我的代码和输出是:

c.roll(3, true); System.out.print(c.get(Calendar.DATE) + " " + c.get(Calendar.MONTH) + " " + c.get(Calendar.YEAR)); o / p:26 6 2014

c.roll(2, true); System.out.print(c.get(Calendar.DATE) + " " + c.get(Calendar.MONTH) + " " + c.get(Calendar.YEAR)) o / p:19 7 2014

c.roll(1, true); System.out.print(c.get(Calendar.DATE) + " " + c.get(Calendar.MONTH) + " " + c.get(Calendar.YEAR)) o / p:2015年6月19日

roll now会将第一个参数添加到我的日期并给出答案。我写的?一旦它添加到一年到一个月...我没有得到这种方法的确切工作。请随时纠正我。

2 个答案:

答案 0 :(得分:1)

请参阅roll()-method的javadoc。您应该使用预定义的Calendar-constants以提高可读性并避免错误。所以你的整数常量具有以下含义:

c.roll(1, true); //实际上与c.roll(YEAR, true);

相同

c.roll(2, true); //实际上与c.roll(MONTH, true);

相同

c.roll(3, true); //实际上与c.roll(WEEK_OF_YEAR, true);

相同

重要:请注意滚动与添加时间量不同的事实。如果你在12月份累积起来,那么你将在今年的一年中改为1月,而不是明年!所以我敢打赌你对使用1作为第二个参数的方法add(int, int)非常感兴趣。

答案 1 :(得分:0)