Java 计算员工暂定级满一年时间:根据刷新时间和序列调动判断
Java 计算员工暂定级满一年时间:根据刷新时间和序列调动判断
本文提供 Java 代码示例,用于根据员工暂定级开始日期、报表刷新时间和序列调动情况,判断员工暂定级是否满一年。
规则说明
- 若报表(强制参评人员名单)在 10 月 1 日至 12 月 31 日刷新,则用下一年 3 月 31 日来计算员工暂定级是否满一年;
- 若在 1 月 1 号至 3 月 31 日之间刷新,则用当年 3 月 31 日来计算员工暂定级是否满一年;
- 若报表是在 4 月 1 日至 9 月 30 日之间刷新,则用当年 9 月 30 日来计算员工暂定级是否满一年;
- 若在暂定级内,发生跨二级序列调动,需要以调动时间作为暂定级开始时间。
代码示例
import java.time.LocalDate;
public class Employee {
private String name;
private LocalDate provisionalLevelStartDate;
public Employee(String name, LocalDate provisionalLevelStartDate) {
this.name = name;
this.provisionalLevelStartDate = provisionalLevelStartDate;
}
public boolean isProvisionalLevelOneYearComplete() {
LocalDate currentDate = LocalDate.now();
if (provisionalLevelStartDate.getMonthValue() >= 10 && provisionalLevelStartDate.getDayOfMonth() == 1
&& currentDate.getMonthValue() == 3 && currentDate.getDayOfMonth() == 31) {
return true;
}
if (provisionalLevelStartDate.getMonthValue() >= 1 && provisionalLevelStartDate.getMonthValue() <= 3
&& provisionalLevelStartDate.getDayOfMonth() == 1 && currentDate.getMonthValue() == 3
&& currentDate.getDayOfMonth() == 31) {
return true;
}
if (provisionalLevelStartDate.getMonthValue() >= 4 && provisionalLevelStartDate.getMonthValue() <= 9
&& provisionalLevelStartDate.getDayOfMonth() == 1 && currentDate.getMonthValue() == 9
&& currentDate.getDayOfMonth() == 30) {
return true;
}
return false;
}
public static void main(String[] args) {
Employee employee = new Employee('John', LocalDate.of(2021, 1, 1));
System.out.println('Is provisional level one year complete? ' + employee.isProvisionalLevelOneYearComplete());
}
}
代码解释
在上述代码中,我们创建了一个Employee类,包含员工姓名和暂定级开始日期。isProvisionalLevelOneYearComplete()方法用于判断员工暂定级是否满一年。根据给定的规则,我们比较暂定级开始日期和当前日期来确定是否满足条件。在main()方法中,我们创建了一个Employee对象,并调用isProvisionalLevelOneYearComplete()方法来检查暂定级是否满一年。
注意
上述代码仅供参考,实际应用中可能需要根据具体需求进行调整。例如,需要考虑跨二级序列调动的情况,并添加相应的判断逻辑。
原文地址: https://www.cveoy.top/t/topic/qxPp 著作权归作者所有。请勿转载和采集!