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;
    }
}
相关推荐
老约家的可汗4 分钟前
搜索二叉树的概念及使用
java·开发语言
不知名的老吴7 分钟前
R语言4.3.0安装包百度网盘中文版下载与详细安装指南
开发语言·r语言
棉猴9 分钟前
python海龟绘图之计算夹角towards()
开发语言·python·turtle·海龟绘图·towards
张人玉13 分钟前
SMT 贴片机上位机项目
开发语言·c#
我不是懒洋洋14 分钟前
【经典题目】链表OJ(相交链表、环形链表、环形链表II、随机链表的复制)
c语言·开发语言·数据结构·链表·ecmascript·visual studio
被摘下的星星15 分钟前
Maven
java·maven
ん贤16 分钟前
口述Map
开发语言·面试·golang
悟空码字16 分钟前
别再重复造轮子了!SpringBoot对接第三方系统模板,拿来即用
java·spring boot·后端
yaaakaaang16 分钟前
十七、迭代器模式
java·迭代器模式
我爱cope16 分钟前
【从0开始学设计模式-8| 桥接模式】
java·设计模式·桥接模式