天天看點

【原創】java 擷取十個工作日之前或之後的日期(算當天)-完美解決-費元星

【原創】java 擷取十個工作日之後的日期(算當天)-完美解決-費元星(僅考慮星期六星期天)

/**

*

* 根據開始日期 ,需要的工作日天數 ,計算工作截止日期,并傳回截止日期

* @param startDate 開始日期

* @param workDay 工作日天數(周一到周五)

* @author 【狒狒:Q97175234】

* @time 2015-11-23 上午9:21:25

*

* @motto 既然笨到家,就要努力到家...

*/

public static Date getWorkDay(Date startDate, int workDay) {

Calendar c1 = Calendar.getInstance();

c1.setTime(startDate);

for (int i = 0; i < workDay; i++) {

c1.set(Calendar.DATE, c1.get(Calendar.DATE) + 1);

if (Calendar.SATURDAY == c1.get(Calendar.SATURDAY) || Calendar.SUNDAY == c1.get(Calendar.SUNDAY)) {

workDay = workDay + 1;

c1.set(Calendar.DATE, c1.get(Calendar.DATE) + 1);

continue;

}

}

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

System.out.println(df.format(c1.getTime()) + " " + getWeekOfDate(c1.getTime()));

return c1.getTime();

}

/**

* 根據日期,擷取星期幾

* @param dt

* @return String類型

* @author 【狒狒:Q9715234】

public static String getWeekOfDate(Date dt) {

String[] weekDays = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };

Calendar cal = Calendar.getInstance();

cal.setTime(dt);

int w = cal.get(Calendar.DAY_OF_WEEK) - 1;

if (w < 0) w = 0;

return weekDays[w];

【原創】java 擷取十個工作日之前的日期(算當天)-完美解決-費元星(僅考慮星期六星期天)

public static String getWorkDay(Date startDate, int workDay) {

c1.set(Calendar.DATE, c1.get(Calendar.DATE) -1);

c1.set(Calendar.DATE, c1.get(Calendar.DATE) - 1);

SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");

c1.set(Calendar.DATE, c1.get(Calendar.DATE) +1);

// System.out.println(df.format(c1.getTime()) + " " + getWeekOfDate(c1.getTime()));

return df.format(c1.getTime());

public static void main(String[] args) {

// Date date = AppUtil.getCurrentDate2();

System.out.println("工作日: 8天之前 " +getWorkDay(new Date(), 8));

System.out.println("工作日: 9天之前 " +getWorkDay(new Date(), 9));

System.out.println("工作日: 10天之前 " +getWorkDay(new Date(), 10));

System.out.println("工作日: 11天之前 " +getWorkDay(new Date(), 11));

未來星開發團隊--狒狒

QQ:9715234