首页 > 编程语言 >【Java】取n工作日后的日期(仅排除周六周日)

【Java】取n工作日后的日期(仅排除周六周日)

时间:2023-01-28 16:24:06浏览次数:39  
标签:java import date static 周六 Date Java Calendar 周日

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 HolidayUtils{
    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 = 3;//业务需要的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()

        String simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd").format(today);
        System.out.println(simpleDateFormat);
    }

}

标签:java,import,date,static,周六,Date,Java,Calendar,周日
From: https://www.cnblogs.com/wangjinkui/p/17070533.html

相关文章

  • java学习笔记
    目录1开始使用1.1将java路径加到path变量1.2编写HelloWorld程序1.3编译和运行1.4多个文件的编译与运行:2控制执行流程2.1if-elseif-else2.2switch-case2.3wh......
  • JAVA流程控制
    JAVA流程控制使用Scanner类输入publicclassScannerTest1{publicstaticvoidmain(String[]args){//创建一个扫描器对象,用于接收键盘数据Sc......
  • 【Java001】Map集合遍历
    【Java001】Map集合遍历大家好,我们的gzh是朝阳三只大明白,满满全是干货,分享近期的学习知识以及个人总结(包括读研和IT),跪求一波关注,希望和大家一起努力、进步!!方式1使用Map.Entr......
  • Java数组的使用
    本文介绍了在java开发中经常使用的数组,以及数组的使用方法,注意事项。一.什么是数组1.数组:数组即是一堆逻辑上无序的元素的序列,用来存储多个相同类型的数据,数组可以看做是一......
  • Java类图
    一、箭头:指向父类或接口。指向依赖物。指向子元素。箭头形状:1.继承、实现是**三角型箭头**,其他都为箭头2.组合、聚合都有一个**菱形端**,且都为**实线**,其他都无菱形......
  • java 环境配置(二) 安装IDEA
    1.安装地址:IntelliJIDEA–theLeadingJavaandKotlinIDE(jetbrains.com)   下载  下载完成双击安装即可  继续->  退出 ......
  • Java基础学习08
    多态的使用及细节(2023-01-28)1.对象多态:对象多态涉及到向上转型和向下转型,首先对象多态格式为  父类类型父类引用=new子类(向上转型)运用此方法可以更方便维护代码......
  • 对于Java平台的理解
    谈谈你对Java平台的理解?“Java是解释执行”,这句话正确吗? Java本身是一种面向对象的语言,最显著的特性有两个方面,一是所谓的“一处编译,处处运行”(Writeonce,runanyw......
  • java书写并建立txt日志文件
    /*建立txt,并写入日志文件*/publicstaticvoidlogWrite(Stringdata,Stringname){//System.out.println("写入"+name+"开始");Calend......
  • java 环境配置(一) jdk8 安装
    1.下载JDK Oracle官网:Oracle|CloudApplicationsandCloudPlatformjava  下载  找到想要下载的版本这里我选择的是老版本java8下载完成   ......