Calendar对象有get(,,)方法获取当前年月日等;也可以使用set进行设置.
也可以用add()进行添加,但add()添加只能添加DAY_OF_WEEK,DAY_OF_MONTH,DAY_OF_YEAR
我要的是这样的效果,如果日期是2005-12-31,添加天数2后,就变为2006-1-2,用上面的方法就不能实现,大家有没有什么方法可以实现呢。如能解决,不胜感激。

解决方案 »

  1.   

    public static Calendar changeDay(Calendar calendar, int offset){
      calendar.set(Calendar.DAY_OF_YEAR,(calendar.get(Calendar.DAY_OF_YEAR) + offset));
      return calendar;
    }
      

  2.   

    public static Calendar changeDay(Calendar calendar, int offset){
      calendar.set(Calendar.DAY_OF_YEAR,(calendar.get(Calendar.DAY_OF_YEAR) + offset));
      return calendar;
    }  public static void main(String[] args){
    Calendar calendar = Calendar.getInstance();
    calendar.set(2005, 11, 31);
    System.out.println("myDay: " + calendar.getTime());
    System.out.println("myDay: " + changeDay(calendar, +2).getTime());
             }
      

  3.   

    output:
    myDay: Sat Dec 31 17:14:31 GMT+08:00 2005
    myDay: Mon Jan 02 17:14:31 GMT+08:00 2006
      

  4.   

    晕,我已经自己找到方法了。
    但是,楼上的,我要告诉你,你的方法是错误的
    如果是在同一年,如2005-3-3,加上一个日,加了之后仍然在2005年,楼上的方法就可以。
    但如果日期是2005-12-31,楼上的方法就没有用了、
    正确的方法是:date.set(date.DATE,date.get(date.DATE)+3);
    已经测试过了,正确。