日期加月数返回一个日期的问题A="20071006";
加上一个月数10.返回日期B="XXXXXXXX"
怎么做.谢谢大家

解决方案 »

  1.   

    首先分离日期,月份加10,大于12的话年份加1,
    A="20071006"
    B=A.subString(0,4);
    C=A.subString(5,2);
    C=C+10;
    if(C>12){
     B=B+1;
     C=C-12;
    }
      

  2.   

        public static String addMonths(String ymd, int amount) {
            final Calendar calendar = new GregorianCalendar();
            calendar.setLenient(false);
            calendar.set(Integer.parseInt(ymd.substring(0, 4)),
                    Integer.parseInt(ymd.substring(4, 6)),
                    Integer.parseInt(ymd.substring(6)));
            calendar.add(Calendar.MONTH, amount);        final SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
            sdf.setLenient(false);
            return sdf.format(calendar.getTime());
        }
      

  3.   

    最好先转换为日期类型,加上月后再转回字符串
    一些代码:
    public static final String DATE_FORMAT_YYYYMMDD = "yyyyMMdd";
    String dateStr = "20071006";
    int addMonths = 10;
    SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT_YYYYMMDD);
    Date date = null;
    try {
        date = dateFormat.parse(dateStr);
    } catch(ParseException e) {
        e.printStackTrace();
    }
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(date);
    calendar.add(Calendar.MONTH, addMonths);
    Date nowDate = calendar.getTime();
    System.out.println(dateFormat.format(nowDate));结果:20080806
      

  4.   

    这样如果String dateStr = "20070430";
    则得到20080229