java时间段内总天数-排除周六
时间: 2025-01-03 08:06:39 浏览: 54
在Java中计算某个时间段内(例如从某开始日期到某结束日期)的工作日总数时,我们需要排除周末(周六)。这通常通过判断每个日期是否为工作日来实现。可以借助Calendar类或者Java 8的LocalDate和DayOfWeek工具。
以下是一个简单的示例:
```java
import java.time.LocalDate;
import java.time.temporal.TemporalAdjusters;
public int countWorkingDays(LocalDate startDate, LocalDate endDate) {
// 确定周六的DayOfWeek值
DayOfWeek saturday = DayOfWeek.SATURDAY;
// 创建一个新的LocalDate范围,移除周末
LocalDate[] dates = new LocalDate[]{startDate, endDate};
LocalDate[] workingDates = dates.stream()
.map(date -> date.with(TemporalAdjusters.nextOrSame(DayOfWeek.MONDAY)))
.toArray(LocalDate[]::new);
// 减去首尾,得到有效工作日区间长度,然后减一(因为包括了开始日期但不包括结束日期)
return workingDates.length - 1;
}
```
在这个例子中,我们首先获取起始和结束日期,然后使用`TemporalAdjusters.nextOrSame(DayOfWeek.MONDAY)`将每个日期调整为周一,从而排除掉周六。最后计算出工作日的数量。
阅读全文
相关推荐















