计算两个日期之间有几个的工作日
时间: 2023-10-14 13:19:23 浏览: 163
计算两个日期之间的工作日可以按照以下步骤进行:
1. 将两个日期转换成毫秒数(可以使用 `Date.getTime()` 方法);
2. 计算两个日期之间的天数差(可以使用 `(endDate.getTime() - startDate.getTime()) / (1000 * 60 * 60 * 24)` 计算);
3. 遍历这些天数,对于每一天,判断是否是周末或者节假日。如果不是,则将工作日计数器加 1。
以下是一个 Java 实现的代码示例:
```java
public int getWorkingDaysBetweenTwoDates(Date startDate, Date endDate) {
int workingDays = 0;
Calendar startCal = Calendar.getInstance();
startCal.setTime(startDate);
Calendar endCal = Calendar.getInstance();
endCal.setTime(endDate);
// 如果起始日期在结束日期之后,交换两个日期
if (startCal.after(endCal)) {
Calendar temp = startCal;
startCal = endCal;
endCal = temp;
}
// 循环遍历两个日期之间的每一天
while (startCal.before(endCal)) {
// 判断当前日期是否是周末(周六或周日)
int dayOfWeek = startCal.get(Calendar.DAY_OF_WEEK);
if (dayOfWeek != Calendar.SATURDAY && dayOfWeek != Calendar.SUNDAY) {
// 判断当前日期是否是节假日(可根据实际情况进行修改)
boolean isHoliday = false;
// TODO: 判断是否是节假日的代码
if (!isHoliday) {
workingDays++;
}
}
// 将日期向后推一天
startCal.add(Calendar.DAY_OF_MONTH, 1);
}
return workingDays;
}
```
注意,这个示例代码中仅考虑了周六周日为非工作日的情况,实际情况中可能还有其它的非工作日,需要根据实际情况进行修改。
阅读全文
相关推荐

















