知道当前日期例如:2014-4-3 求5个工作日之前的日期-->应该为2014-3-28

第一步先算出天数

@Test
    public void test3(){
        int count =0;
        for(int i=0 ;i<1000;i++){
            Calendar day=Calendar.getInstance();
            day.add(Calendar.DATE,-i);
            Date hi = day.getTime();
            String s = DateCal.getWeekOfDate(hi);
            if(s.equals("星期一")|s.equals("星期二")|s.equals("星期三")|s.equals("星期四")|s.equals("星期五")){
                count++;
                if(count==5){
                    System.out.println("i="+i);
                    System.out.println("-----------");
                    System.out.println(hi);
                    break;
                }
            }
        }
    }

第二步  根据算出的天数调用方法

day.add(Calendar.DATE,-i);

可以很方便的算出日期。


以上可以抽取一个方法以便使用

/**
 * 获取日期的天数
 * @param start 向前的工作日数
 * @return
 */
public static int startDay(int start){
    int count =0;
    int i ;
    for( i=0 ;i<1000;i++){
        Calendar day=Calendar.getInstance();
        day.add(Calendar.DATE,-i);
        Date hi = day.getTime();
        String s = DateCal.getWeekOfDate(hi);
        if(s.equals("星期一")|s.equals("星期二")|s.equals("星期三")|s.equals("星期四")|s.equals("星期五")){
            count++;
            if(count==start){
                return i;
            }
        }
    }
    return i;
}

以上代码不足之处,只能排除周六周末  不能排除节假日。