Calendar rightNow = Calendar.getInstance();
//rightNow.set(2005,01,31);
//rightNow.add(Calendar.DATE,1);
out.println(rightNow.get(Calendar.YEAR));
out.println(rightNow.get(Calendar.MONTH));
out.println(rightNow.get(Calendar.DATE));先看看这个输出你就明白了,月份相差1的。

解决方案 »

  1.   

    在rightNow.set(year,month,date)的参数中,year表示年份没问题,month表示月份但却以0为起始值,date表示该月的第几天。看一下(2005,01,31)吧,它的含义是2005年2月第31天,即2005年3月第3天,加1天后不就是2005年3月第4天嘛(2005,2,4),所以结果是正确无误地。另外:
    <%
    Calendar rightNow = Calendar.getInstance();
    rightNow.set(2005,01,31);
    rightNow.add(Calendar.DAY_OF_MONTH,1);
    System.out.println(rightNow.get(Calendar.YEAR));
    System.out.println(rightNow.get(Calendar.MONTH));
    System.out.println(rightNow.get(Calendar.DAY_OF_MONTH));
    %〉
    这样写会比较好一点。
      

  2.   

    不过偶输出的也是2005 2 4,   why?  thinking..............