import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class Pair <L, R> {
private L left;
private R right;
public Pair() {
}
public Pair(L l, R r) {
this.left = l;
this.right = r;
}
}
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
public class WorkDateUtil {
private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
public static void main(String[] args) {
Date date = new Date();
Pair<Integer, Date> workDate = getWorkDate(date, 4);
Integer left = workDate.getLeft();
Date right = workDate.getRight();
com.shuidihuzhu.common.util.DateUtil.addDays(date, 10);
System.out.println("--------");
}
public static Date getBeforeDay(Date date) {
Calendar c = Calendar.getInstance();
c.setTime(date);
int day = c.get(Calendar.DATE);
c.set(Calendar.DATE, day - 1);
Date time = c.getTime();
return time;
}
public static Pair<Integer, Date> getWorkDate(Date date, int num) {
Pair<Integer, Date> integerDatePair = new Pair<>();
Calendar calendar = new GregorianCalendar();
calendar.setTime(date);
calendar.add(Calendar.DATE, num);
Date afterdate = calendar.getTime();
String s = DateUtil.formatDateTimeYYYYMMDD(afterdate);
boolean isweekend = isWeekend(afterdate);
if (!isweekend) {
integerDatePair.setLeft(num);
integerDatePair.setRight(afterdate);
return integerDatePair;
}
return getWorkDate(date, num + 1);
}
public static Date getTomorrow(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DAY_OF_MONTH, +1);
date = calendar.getTime();
return date;
}
public static boolean isWeekend(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
if (cal.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY || cal.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) {
return true;
} else {
return false;
}
}
public static boolean isHoliday(String sdate, List<String> list) throws ParseException {
if (list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
if (sdate.equals(list.get(i))) {
return true;
}
}
}
return false;
}
}