Calendar的两个方法的比较
1:Calendar.getInstance().add(int field,int amount);
2:Calendar.getInstance().roll(int field,int amount);
***向指定日历字段添加指定(有符号的)时间量,不更改更大的字段。
这里所说的不更改更大的字段,是什么意思?

解决方案 »

  1.   

    比如,3 月 31 日,add 10 天,就变成了 4 月 10 日
    如果是 roll 10 天,月份不会变动,只有日期变动,成了 3 月 10 日,即取消进位处理。
      

  2.   


    Calendar calendar = Calendar.getInstance();
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
    calendar.set(2007, Calendar.JANUARY, 30);
    calendar.set(Calendar.MONTH, 13);//2008-03-01
    // calendar.add(Calendar.MONTH, 13);//2008-02-29
    // calendar.roll(Calendar.MONTH, 13);//2007-02-28
    System.out.println(format.format(calendar.getTime()));