Java实现计算两个日期之间的工作日天数

需求:

需要在后端实现 计算当前日期与数据库内保存的日期数据之间相隔的工作日数目

实现

java 复制代码
import java.time.DayOfWeek;
import java.time.LocalDateTime;

public class WorkdaysCalculator {
    public static void main(String[] args) {
        String givenDateTimeStr = "2022-01-01T12:34:56.789"; // 替换为你的日期时间字符串

        LocalDateTime currentDateTime = LocalDateTime.now(); // 获取当前时间
        LocalDateTime givenDateTime = LocalDateTime.parse(givenDateTimeStr);

        int workdaysCount = 0;  // 记录相隔工作日数目
        int daysCount = 0;  // 记录相隔天数总数目
		// 循环 直到当前日期在给定日期之前
        while (currentDateTime.isAfter(givenDateTime) || currentDateTime.equals(givenDateTime)) {
            if (isWorkday(currentDateTime.getDayOfWeek())) {
                workdaysCount++;
            }
            currentDateTime = currentDateTime.minusDays(1);  // 当前日期减去一天
            daysCount++;
        }

        if (workdaysCount > 90) {
            System.out.println("给定日期超过90个工作日");
        } else {
            System.out.println("给定日期不超过90个工作日");
        }

        System.out.println("总天数:" + daysCount);
        System.out.println("工作日天数:" + workdaysCount);
    }

    private static boolean isWorkday(DayOfWeek dayOfWeek) { //校验当前日期是否为工作日
        return dayOfWeek != DayOfWeek.SATURDAY && dayOfWeek != DayOfWeek.SUNDAY;
    }
}
相关推荐
学习3人组3 分钟前
Mes全连路架构图
java·erp
chxii7 分钟前
lua流程控制语句和table(表)数据结构
开发语言·junit·lua
上弦月-编程9 分钟前
C语言指针从入门到实战
java·jvm·算法
Cyan_RA910 分钟前
SpringMVC 请求数据绑定与参数映射 详解
java·后端·spring·mvc·springmvc·映射请求数据
逻辑驱动的ken14 分钟前
Java高频面试考点场景题20
java·开发语言·深度学习·面试·职场和发展
W.A委员会15 分钟前
多行溢出在末尾添加省略号
开发语言·javascript·css
bzmK1DTbd15 分钟前
Java游戏服务器:Netty框架的高并发网络通信
java·服务器·游戏
longxibo17 分钟前
【Flowable 7.2 源码深度解析与实战-前言】
java·后端·流程图
wjs202418 分钟前
RSS Item 元素:深入解析与使用指南
开发语言
小郑加油21 分钟前
python学习Day11:认识与创建CSV文件
开发语言·python·学习