java 计算两个时间相差天数 不计算周末
时间: 2023-08-03 12:03:44 浏览: 44
可以使用Java 8中的LocalDate和TemporalAdjusters类来计算两个日期之间的工作日数量。以下是示例代码:
```
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.temporal.TemporalAdjusters;
public class DateUtil {
public static long getWorkingDays(LocalDate startDate, LocalDate endDate) {
long workingDays = 0;
LocalDate date = startDate;
while (!date.isAfter(endDate)) {
if (date.getDayOfWeek() != DayOfWeek.SATURDAY && date.getDayOfWeek() != DayOfWeek.SUNDAY) {
workingDays++;
}
date = date.plusDays(1);
}
return workingDays;
}
public static long getWorkingDaysExcludeWeekend(LocalDate startDate, LocalDate endDate) {
long workingDays = 0;
LocalDate firstMonday = startDate.with(TemporalAdjusters.next(DayOfWeek.MONDAY));
LocalDate lastFriday = endDate.with(TemporalAdjusters.previous(DayOfWeek.FRIDAY));
if (firstMonday.isBefore(lastFriday)) {
workingDays = getWorkingDays(firstMonday, lastFriday);
}
return workingDays;
}
public static void main(String[] args) {
LocalDate startDate = LocalDate.of(2021, 7, 1);
LocalDate endDate = LocalDate.of(2021, 7, 15);
long workingDays = getWorkingDaysExcludeWeekend(startDate, endDate);
System.out.println("Working days: " + workingDays);
}
}
```
在上面的示例代码中,getWorkingDaysExcludeWeekend方法可计算两个日期之间的工作日数量,不包括周六和周日。```getWorkingDays```方法则计算两个日期之间的所有工作日数量,包括周六和周日。