首页  >  文章  >  Java  >  Java中如何计算两个日期之间的工作日数?

Java中如何计算两个日期之间的工作日数?

Patricia Arquette
Patricia Arquette原创
2024-10-25 17:36:42413浏览

How to Calculate the Number of Weekdays Between Two Dates in Java?

用 Java 计算两个日期之间的工作日数

对于那些寻求 Java 代码片段来计算工作日数的人(不包括周末),2011 年的一个流行响应提出了一个利用 Calendar 类的解决方案。尽管 Java 8 随后通过 java.time 包引入了现代日期时间处理功能,但以下代码演示了如何使用 Calendar API 实现此计算:

<code class="java">public static int getWorkingDaysBetweenTwoDates(Date startDate, Date endDate) {
    Calendar startCal = Calendar.getInstance();
    startCal.setTime(startDate);        
    
    Calendar endCal = Calendar.getInstance();
    endCal.setTime(endDate);

    int workDays = 0;

    //Return 0 if start and end are the same
    if (startCal.getTimeInMillis() == endCal.getTimeInMillis()) {
        return 0;
    }
    
    if (startCal.getTimeInMillis() > endCal.getTimeInMillis()) {
        startCal.setTime(endDate);
        endCal.setTime(startDate);
    }

    do {
       //excluding start date
        startCal.add(Calendar.DAY_OF_MONTH, 1);
        if (startCal.get(Calendar.DAY_OF_WEEK) != Calendar.SATURDAY && startCal.get(Calendar.DAY_OF_WEEK) != Calendar.SUNDAY) {
            ++workDays;
        }
    } while (startCal.getTimeInMillis() < endCal.getTimeInMillis()); //excluding end date

    return workDays;
}</code>

请注意,此解决方案遵循“连续” " 计数方法,不包括开始日期和结束日期本身。例如,如果开始和结束分别是星期一和星期五,则该方法将返回 4。

以上是Java中如何计算两个日期之间的工作日数?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn