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()
    }


}

 

posted @ 2021-05-12 13:44  哎丫丫呀喂  阅读(754)  评论(0编辑  收藏  举报