请问:(1)java 有没有现成的方法,根据开始的日期和增加的月份数,取得结束的日期的方法?
        (2)如果没有,请大家帮我写一个吧?
             例: 2005-12-01 + 12个月 = 2006-11-30 
                  注意日期要减1。请大家帮帮忙。方法定义如下:  /*
   * 取得结束日期
   * @param startDate : 开始日期
   * @param monthNum : 增加的月数
   * @return : 结束日期
   */
  public String getEmdDate(String startDate, int monthNum) throws Exception {
    String resultDate;
    resultDate = "";
    try {    } catch (Exception ex) {    } finally {    }
    return resultDate;
  }

解决方案 »

  1.   

    Calendar c = Calendar.getInstance();
    c.add(Calendar.MONTH, 12);
    c.add(Calendar.DATE, -1);
    Date d = c.getTime();
    SimpleDateFormat sdf = new SimpleDateFormat("yyyymmdd");
    String date = sdf.format(d);
    System.out.println(date);
      

  2.   

    /*
       * 取得结束日期
       * @param startDate : String 开始日期 (YYYY-MM-DD)
       * @param monthNum : int 增加的月数
       * @return : String 结束日期 (YYYY-MM-DD)
       */
      public String getEndDate(String startDate, int monthNum) throws Exception {
        String resultDate;
        resultDate = "";
        try {
          Calendar calendar = Calendar.getInstance();
          SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
          calendar.setTime(sdf.parse(startDate));
          calendar.add(Calendar.MONTH, monthNum);
          calendar.add(Calendar.DATE, -1);
          Date date = calendar.getTime();
          resultDate = sdf.format(date);
        } catch (Exception ex) {    } finally {    }
        return resultDate;
      }