public static SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
public static SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
private static List<String> legalHoliday = new ArrayList<>();
static {
legalHoliday.add("2021-01-01");
legalHoliday.add("2021-02-11");
legalHoliday.add("2021-02-12");
legalHoliday.add("2021-02-15");
legalHoliday.add("2021-02-16");
legalHoliday.add("2021-02-17");
legalHoliday.add("2021-04-05");
legalHoliday.add("2021-05-03");
legalHoliday.add("2021-05-04");
legalHoliday.add("2021-05-05");
legalHoliday.add("2021-06-14");
legalHoliday.add("2021-09-20");
legalHoliday.add("2021-09-21");
legalHoliday.add("2021-10-01");
legalHoliday.add("2021-10-04");
legalHoliday.add("2021-10-05");
legalHoliday.add("2021-10-06");
legalHoliday.add("2021-10-07");
}
public static boolean isHoliday(Date time){
String d = sdf2.format(time);
return legalHoliday.contains(d);
}
public static String getWorkDay13() {
Calendar c = Calendar.getInstance();
c.setTime(new Date());
int count = 0;
while(count < 14) {
Date d = c.getTime();
int dayOfWeek = c.get(Calendar.DAY_OF_WEEK);
if(dayOfWeek == 1 || dayOfWeek == 7 || isHoliday(d)) {
}else {
count++;
}
if(count < 14) {
c.add(Calendar.DAY_OF_MONTH, -1);
}
}
return sdf2.format(c.getTime());
}
public static void main(String[] args) throws Exception {
System.out.println(getWorkDay13());
}