请假开始时间、请假结束时间算出天数,节假日、周末不算
时间: 2023-08-17 21:04:23 浏览: 116
以下是 Java 实现请假开始时间、请假结束时间算出天数,节假日、周末不算的示例代码:
```java
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
import java.util.HashSet;
import java.util.Set;
public class LeaveDaysCalculator {
private Set<LocalDate> holidays;
public LeaveDaysCalculator() {
holidays = new HashSet<>();
// 将节假日加入到集合中
holidays.add(LocalDate.of(2021, 10, 1));
holidays.add(LocalDate.of(2021, 10, 2));
holidays.add(LocalDate.of(2021, 10, 3));
holidays.add(LocalDate.of(2021, 10, 4));
holidays.add(LocalDate.of(2021, 10, 5));
holidays.add(LocalDate.of(2021, 10, 6));
holidays.add(LocalDate.of(2021, 10, 7));
}
public int calculateLeaveDays(LocalDate startDate, LocalDate endDate) {
int leaveDays = 0;
// 遍历请假期间的每一天
for (LocalDate date = startDate; date.isBefore(endDate.plusDays(1)); date = date.plusDays(1)) {
if (date.getDayOfWeek() != DayOfWeek.SATURDAY && date.getDayOfWeek() != DayOfWeek.SUNDAY && !holidays.contains(date)) {
leaveDays++;
}
}
return leaveDays;
}
public static void main(String[] args) {
LeaveDaysCalculator calculator = new LeaveDaysCalculator();
LocalDate startDate = LocalDate.of(2021, 10, 8);
LocalDate endDate = LocalDate.of(2021, 10, 15);
int leaveDays = calculator.calculateLeaveDays(startDate, endDate);
System.out.println("请假天数:" + leaveDays);
}
}
```
在示例代码中,我们遍历请假期间的每一天,如果该天是周末或者节假日,则将请假天数不计入统计。如果该天是工作日,则将请假天数加一。