给个日期 如:2009/06/27(该天是星期六) 计算加5天后的日期。
分两种情况:
1:自然日     计算结果2009/07/02
2:工作日     计算结果2009/07/03这个方法怎么写好?

解决方案 »

  1.   


    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;public class HelloWord {
     public static void main(String[] args) throws Exception {   
      
     addDate("2009/06/27",5); }
     public static String addDate(String m_date,int x)
      {
        SimpleDateFormat format=new SimpleDateFormat("yyyy/MM/dd");
        Date date = null;    
        try {
    date = format.parse(m_date);
    } catch (java.text.ParseException e) {
    e.printStackTrace();
    }
        if (date==null) return "";
        Calendar cal=Calendar.getInstance();
        cal.setTime(date);    
        cal.add(Calendar.DAY_OF_MONTH,x);
        date=cal.getTime();
        System.out.println(x+" days after is "+format.format(date));
        cal=null;
        return format.format(date);
      }
    }结果:
    5 days after is 2009/07/02
      

  2.   


    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.Locale;public class AddDay { private static boolean isWorkingDay = false;// 是否为工作日 public static void main(String[] args) throws Exception {
    isWorkingDay = true;
    addDate("2009/06/25", 5);
    } public static String addDate(String m_date, int x) {
    SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd");
    Date date = null;
    int dayadd = x;
    try {
    date = format.parse(m_date);
    } catch (java.text.ParseException e) {
    e.printStackTrace();
    }
    if (date == null)
    return "";
    Calendar cal = Calendar.getInstance();
    cal.setTime(date);
    if (isWorkingDay) {
    SimpleDateFormat form = new SimpleDateFormat("EEE", new Locale(
    "US", "en"));
    String dayinweek = form.format(date);
    if (dayinweek.equals("Sat")) {
    dayadd = x + 1;
    } else if (dayinweek.equals("Sun")) { } else {
    dayadd = x + 2;
    }
    }
    cal.add(Calendar.DAY_OF_MONTH, dayadd);
    Date newdate = cal.getTime();
    System.out.println((isWorkingDay ? "工作日" : "自然日") + ":" + x
    + " days after " + format.format(date) + " is "
    + format.format(newdate));
    cal = null;
    return format.format(date);
    }
    }实现了要求的功能
      

  3.   

    wsahlj一直在不停CSDN上做广告,为什么CSDN不禁止?