java 计算当前时间n个工作日以前的时间

java 写个工具方法
计算当前时间n天以前的时间
注:这个n天指的是工作日

/**
* 根据给定的时间确定N个工作日之前的工作日
*
* @param strStartDate StartDate
* @param n n个工作日
* @return LocalDate
*/
public LocalDate getDutyDays(String strStartDate, int n) {

    int result = 0;
    DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd");

    LocalDate sartDate = LocalDate.parse(strStartDate, df);

    while (result < n) {
        if (!sartDate.getDayOfWeek().toString().equals("SATURDAY") &&
                !sartDate.getDayOfWeek().toString().equals("SUNDAY")){
            result++;
        }
        sartDate = sartDate.plusDays(-1);
    }
    if (sartDate.getDayOfWeek().toString().equals("SATURDAY")){
        sartDate = sartDate.plusDays(-1);
    }
    if (sartDate.getDayOfWeek().toString().equals("SUNDAY")){
        sartDate = sartDate.plusDays(-2);
    }
    return sartDate;
}

http://www.jb51.net/article/62848.htm

public static Date getWorkDte(Calendar calendar,int days){
if(days>0){
for(int i=1;i<=days;i++){
calendar.add(Calendar.DAY_OF_YEAR, 1);
if(calendar.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY||calendar.get(Calendar.DAY_OF_WEEK)==Calendar.SUNDAY){
i--;
}
}
}else if(days for(int i=0;i>days;i--){
calendar.add(Calendar.DAY_OF_YEAR, -1);
if(calendar.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY||calendar.get(Calendar.DAY_OF_WEEK)==Calendar.SUNDAY){
i++;
}
}
}
return calendar.getTime();
}

public static Calendar getNdaysBefore(int n) {
Calendar calendar1 = Calendar.getInstance();
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");// 格式
calendar1.add(Calendar.DATE, -n);// 负数表示前几天
String n_days_ago = sdf1.format(calendar1.getTime());
System.out.println(n_days_ago);
return calendar1;
}