JAVA 取五个工作日后的日期(仅排除周六周日)

Posted 哎丫丫呀喂

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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()
    }


}

 

以上是关于JAVA 取五个工作日后的日期(仅排除周六周日)的主要内容,如果未能解决你的问题,请参考以下文章

oracle中怎么得到日期相减除去周末后的天数

用for循环计算任意两个日期之间的工作日(去掉周六周日)

Excel中计算两个日期之间的天数,扣除周六周日

用javascript计算任意两个日期之间的工作日(去掉周六周日),不用while循环,而是用for循环

PL/SQL 获取一个月的天数排除周六周日

Project中设置周六周日为工作日