Calendar c = Calendar.getInstance(); c.set(2017,0,7,15,40); System.out.println("now day: " + c.getTime()); c.roll(c.DATE, 35); System.out.println("roll 35 day: " + c.getTime());
运行结果:
now day: Sat Jan 07 15:40:20 CST 2017
roll 35 day: Wed Jan 11 15:40:20 CST 2017
此时可以看到 月份不会改变,而是在日期上滚动35天后从7号改变为了11号。(由于1月有31天当滚动到31日后会从1号开始计时)
Calendar c = Calendar.getInstance(); c.set(2017,0,7,15,40); System.out.println("now day: " + c.getTime()); c.add(c.DATE, 35); System.out.println("add 35 day: " + c.getTime());
运行结果:
now day: Sat Jan 07 15:40:04 CST 2017
add 35 day: Sat Feb 11 15:40:04 CST 2017
此时可以看到月份由1月变化到了2月,当添加天数的时候,1月份以后填满则会填充到二月份。
add和roll的却别就在于此,roll只是单纯的在日期上作出滚动,不会影响年、月。add则会像我们自然处理时间一样,1月走完了,自然过渡到2月。