Java 计算时间范围是否在指定工作日内 (yyyy-MM-dd HH:mm:ss 格式)
可以使用 Java 的日期时间类库来实现判断字符串开始时间和结束时间是否在 5、10、15、20 个工作日内。以下是一个示例代码:
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
public class Main {
public static void main(String[] args) {
String startTime = '2021-01-01 09:00:00';
String endTime = '2021-01-15 17:00:00';
// 将字符串转换为 LocalDateTime 对象
LocalDateTime startDateTime = LocalDateTime.parse(startTime, DateTimeFormatter.ofPattern('yyyy-MM-dd HH:mm:ss'));
LocalDateTime endDateTime = LocalDateTime.parse(endTime, DateTimeFormatter.ofPattern('yyyy-MM-dd HH:mm:ss'));
// 计算开始时间和结束时间之间的工作日天数
long workingDays = calculateWorkingDays(startDateTime.toLocalDate(), endDateTime.toLocalDate());
// 判断是否在 5、10、15、20 个工作日内
if (workingDays <= 5) {
System.out.println('在 5 个工作日内');
} else if (workingDays <= 10) {
System.out.println('在 10 个工作日内');
} else if (workingDays <= 15) {
System.out.println('在 15 个工作日内');
} else if (workingDays <= 20) {
System.out.println('在 20 个工作日内');
} else {
System.out.println('不在 5、10、15、20 个工作日内');
}
}
// 计算两个日期之间的工作日天数
public static long calculateWorkingDays(LocalDate startDate, LocalDate endDate) {
long workingDays = 0;
LocalDate date = startDate;
while (date.isBefore(endDate) || date.isEqual(endDate)) {
if (date.getDayOfWeek() != java.time.DayOfWeek.SATURDAY && date.getDayOfWeek() != java.time.DayOfWeek.SUNDAY) {
workingDays++;
}
date = date.plusDays(1);
}
return workingDays;
}
}
请注意,在计算工作日天数时,我们假设周六和周日为非工作日。您可以根据实际情况进行调整。
原文地址: https://www.cveoy.top/t/topic/mLNK 著作权归作者所有。请勿转载和采集!