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

以下代码可帮助您查找两个日期之间指定的工作日(星期一,星期二,星期三等)的数量。我们下面使用的解决方案是在两个日期之间循环,并检查这些日期的工作日是否等于我们要计算的日期。

package org.nhooo.example.util;

import java.util.Calendar;

public class DaysBetweenDate {
    public static void main(String[] args) {
        // Java中的月份值基于0,因此11表示12月。
        Calendar start = Calendar.getInstance();
        start.set(2017, 11, 1);
        Calendar end = Calendar.getInstance();
        end.set(2017, 11, 31);

        System.out.print("Number Monday between " +
            start.getTime() + " and " + end.getTime() + " are: ");

        int numberOfDays = 0;
        int monday = Calendar.MONDAY;

        while (start.before(end)) {
            if (start.get(Calendar.DAY_OF_WEEK) == monday) {
                numberOfDays++;
                start.add(Calendar.DATE, 7);
            } else {
                start.add(Calendar.DATE, 1);
            }
        }

        System.out.println(numberOfDays);
    }
}

我们程序的结果是:

Number Monday between Fri Dec 01 15:57:12 CST 2017 and Sun Dec 31 15:57:12 CST 2017 are: 4