java 计算两个时间相差天数 排除节假日跟周末
时间: 2023-08-03 19:03:11 浏览: 199
Java中可以使用`java.time`包来方便地计算时间差。计算两个时间相差天数,可以使用`java.time.Duration`类的`toDays()`方法。
排除节假日和周末,可以通过编写程序来实现。以下是一个简单的示例代码:
```java
import java.time.DayOfWeek;
import java.time.Duration;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
public class DateUtil {
// 节假日列表,可以从外部导入或者使用API获取
private static List<LocalDate> holidayList = new ArrayList<>();
// 判断是否为节假日或者周末
private static boolean isHolidayOrWeekend(LocalDate date) {
DayOfWeek dayOfWeek = date.getDayOfWeek();
return dayOfWeek == DayOfWeek.SATURDAY || dayOfWeek == DayOfWeek.SUNDAY || holidayList.contains(date);
}
// 计算两个时间的相差天数,排除节假日和周末
public static long getDiffDays(LocalDate start, LocalDate end) {
long diffDays = 0;
LocalDate date = start;
while (date.isBefore(end)) {
if (!isHolidayOrWeekend(date)) {
diffDays++;
}
date = date.plusDays(1);
}
return diffDays;
}
public static void main(String[] args) {
// 示例:计算2019年1月1日到2019年12月31日的相差天数
LocalDate start = LocalDate.parse("2019-01-01", DateTimeFormatter.ofPattern("yyyy-MM-dd"));
LocalDate end = LocalDate.parse("2019-12-31", DateTimeFormatter.ofPattern("yyyy-MM-dd"));
long diffDays = getDiffDays(start, end);
System.out.println("相差天数:" + diffDays);
}
}
```
在上面的代码中,`isHolidayOrWeekend()`方法用来判断一个日期是否为节假日或者周末。`getDiffDays()`方法用来计算两个日期之间的相差天数,排除掉节假日和周末。`holidayList`变量可以从外部导入节假日列表,也可以使用API来获取。在`main()`方法中,我们演示了如何计算2019年1月1日到2019年12月31日之间的相差天数,并且排除掉节假日和周末。
阅读全文