求一方法:给一个时间(如:String类型2005-5-1)
算该日期后退一年(2005-05-02)。及该日期往后一年(2006-04-30)要求返回String类型

解决方案 »

  1.   

    try:Calendar calendar = new GregorianCalendar(2005, GregorianCalendar.MAY , 1);
    System.out.println(calendar.getTime());   //Date类型,自己用DateFormat格式化即可
            calendar.add(GregorianCalendar.YEAR, 1);
            System.out.println(calendar.getTime());
            calendar.add(GregorianCalendar.YEAR, -1);
            System.out.println(calendar.getTime());
      

  2.   

    Calendar calendar = new GregorianCalendar(1996, GregorianCalendar.FEBRUARY , 29);
    DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
    System.out.println(format.format(calendar.getTime()));  //1996-02-29
    calendar.add(GregorianCalendar.YEAR, 1);
    System.out.println(format.format(calendar.getTime()));  //1997-02-28
    calendar.add(GregorianCalendar.YEAR, -1);
    System.out.println(format.format(calendar.getTime()));  //1996-02-28
      

  3.   

    /**
     * 获得指定日期以前固定间隔的日期,如2005-07-15日期之前60天dateAdd(-60)
     * 
     * @param amount
     *            距今天的间隔日期长度,向前为负,向后为正
     * @return java.lang.String 固定间隔的日期
     */
    public static String beforeDate(Date date, int amount) {
    Calendar cal = new GregorianCalendar();
    cal.setTime(date);
    cal.add(GregorianCalendar.DATE, amount);
    int y = cal.get(GregorianCalendar.YEAR);
    int m = cal.get(GregorianCalendar.MONTH) + 1;
    int d = cal.get(GregorianCalendar.DAY_OF_MONTH);
    String ymd = Integer.toString(y) + "-" + Integer.toString(m) + "-"
    + Integer.toString(d);
    return dateFormat(ymd, "yyyy-MM-dd");
    }
    /**
     * 获得指定日期以前固定间隔的日期,如2005-07-15日期之前60天dateAdd(-60)
     * 
     * @param amount
     *            距今天的间隔日期长度,向前为负,向后为正
     * @return java.lang.String 固定间隔的日期
     */
    public static String AfterDate(Date date, int amount) {
    amount = -amount;
    return beforeDate(date, amount);
    }
      

  4.   

    //当前日期前几天或者后几天的日期 public static String afterNDay(int n){
            Calendar c=Calendar.getInstance();
            DateFormat df=new SimpleDateFormat("yyyy-MM-dd");
            c.setTime(new Date());
            c.add(Calendar.DATE,n);
            Date d2=c.getTime();
            String s=df.format(d2);
            return s;
        }