帮我用java实现计算请假天数 (结束时间-开始时间+1) +if(开始时间>'12:30',-0.5,if(开始时间>'18:30',-1.0))+if(结束时间<'13:30',-0.5,if(结束时间<'08:30',-1.0))
时间: 2023-06-02 14:03:54 浏览: 166
java计算工作时间除去节假日以及双休日
5星 · 资源好评率100%
好的,这是一个关于计算请假天数的问题。以下是使用Java实现的代码:
```
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.temporal.ChronoUnit;
public class LeaveCalculator {
public static double calculateLeaveDays(LocalDate startDate, LocalTime startTime, LocalDate endDate, LocalTime endTime) {
double leaveDays = ChronoUnit.DAYS.between(startDate, endDate);
// Adjust for half days
if (startTime.isAfter(LocalTime.of(12, 30))) {
leaveDays -= 0.5;
} else if (startTime.isAfter(LocalTime.of(18, 30))) {
leaveDays -= 1.0;
}
if (endTime.isBefore(LocalTime.of(13, 30))) {
leaveDays -= 0.5;
} else if (endTime.isBefore(LocalTime.of(8, 30))) {
leaveDays -= 1.0;
}
return leaveDays;
}
}
```
这个方法接收开始日期、开始时间、结束日期和结束时间作为参数,并返回请假天数(包括半天)。其中如果开始时间晚于下午12点30分,则请假天数减去0.5天,如果晚于下午6点30分,则请假天数再减去1天。同理,如果结束时间早于下午1点30分,则请假天数减去0.5天,如果早于早上8点30分,则再减去1天。希望能对您有帮助!
阅读全文