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;
    }
}
相关推荐
金銀銅鐵几秒前
[Java] JDK 15 新变化之文本块(Text Blocks)
java·后端
y***0317几秒前
Spring Boot(快速上手)
java·spring boot·后端
非凡的世界2 分钟前
PHP 高性能框架 Yii 3.0 安装使用
开发语言·php·yii3
王桑.3 分钟前
WebSocket---一种用于实时传输的网络协议
java·websocket·spring·java-ee
帝吃藕和3 分钟前
类加载和对象创建的执行顺序+例子
java·java笔试
CoderYanger8 分钟前
递归、搜索与回溯-综合练习:28.不同路径Ⅲ
java·算法·leetcode·深度优先·1024程序员节
鱼丸花生8 分钟前
Java 数组详解
java
用户84913717547169 分钟前
Tomcat 为什么要“造反”?深度解析 Java 类加载机制的“守”与“破”
java·jvm
沐知全栈开发9 分钟前
jEasyUI 设置排序
开发语言
code bean10 分钟前
【C++ 】C++ 与 C#:using 关键字、命名空间及作用域解析符对比
开发语言·c++·c#