知道当前日期例如: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; }
以上代码不足之处,只能排除周六周末 不能排除节假日。
转载于:https://blog.51cto.com/jufli/1390085