JAVA 取五个工作日后的日期(仅排除周六周日)
import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.*; import java.time.format.DateTimeFormatter; import java.util.Calendar; import java.util.Date; public class test{ private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); private static Date getTomorrow(Date date){ Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.add(Calendar.DAY_OF_MONTH, +1); date = calendar.getTime(); return date; } private static boolean isWeekend(String sdate) throws ParseException { Date date = sdf.parse(sdate); 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 void main(String[] arg) throws ParseException{ Date today = new Date(); Date tomorrow = null; int delay = 1; int num = 5;//业务需要的n个工作日 while(delay <= num){ tomorrow = getTomorrow(today); if (!isWeekend(sdf.format(tomorrow))){ delay++; } today = tomorrow; } LocalDateTime fDate = Instant.ofEpochMilli(today.getTime()).atZone(ZoneId.systemDefault()).toLocalDateTime(); //或LocalDateTime fDate = today.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime() } }