Java统计加班时长 年假表设计
在现代社会,工作压力越来越大,加班已经成为很多人生活中的常态。对于企业来说,合理统计和管理员工的加班时长是非常重要的。同时,企业也需要为员工提供年假来保障员工的健康和工作积极性。在本文中,我们将介绍如何使用Java设计一个简单的加班时长和年假表,并提供相应的代码示例。
加班时长表设计
加班时长表是记录员工每天加班时长的表格,通常包含以下字段:
- 员工ID:唯一标识员工的ID
- 日期:加班日期
- 加班时长:当天的加班时长
我们可以使用一个Java类来表示加班时长表中的一行数据,如下所示:
public class OvertimeRecord {
private int employeeId;
private LocalDate date;
private double hours;
// 构造函数
public OvertimeRecord(int employeeId, LocalDate date, double hours) {
this.employeeId = employeeId;
this.date = date;
this.hours = hours;
}
// Getters and Setters
// ...
}
每一条加班记录都有员工ID、日期和加班时长三个属性,我们可以使用相应的Getter和Setter方法来获取和设置这些属性的值。
接下来,我们可以使用一个ArrayList来表示整个加班时长表,如下所示:
public class OvertimeTable {
private List<OvertimeRecord> records;
// 构造函数
public OvertimeTable() {
records = new ArrayList<>();
}
// 添加一条加班记录
public void addRecord(OvertimeRecord record) {
records.add(record);
}
// 获取指定员工的加班总时长
public double getTotalHours(int employeeId) {
double total = 0;
for (OvertimeRecord record : records) {
if (record.getEmployeeId() == employeeId) {
total += record.getHours();
}
}
return total;
}
// 获取指定日期的加班总时长
public double getTotalHours(LocalDate date) {
double total = 0;
for (OvertimeRecord record : records) {
if (record.getDate().equals(date)) {
total += record.getHours();
}
}
return total;
}
}
在OvertimeTable类中,我们可以添加一条加班记录,并且可以根据员工ID或日期来获取加班总时长。
年假表设计
年假表是记录员工年假信息的表格,通常包含以下字段:
- 员工ID:唯一标识员工的ID
- 年假总时长:员工的年假总时长
- 已休年假:员工已经休假的时长
我们可以使用一个Java类来表示年假表中的一行数据,如下所示:
public class AnnualLeaveRecord {
private int employeeId;
private double totalHours;
private double takenHours;
// 构造函数
public AnnualLeaveRecord(int employeeId, double totalHours, double takenHours) {
this.employeeId = employeeId;
this.totalHours = totalHours;
this.takenHours = takenHours;
}
// Getters and Setters
// ...
}
每一条年假记录都有员工ID、年假总时长和已休年假时长三个属性,我们可以使用相应的Getter和Setter方法来获取和设置这些属性的值。
接下来,我们可以使用一个HashMap来表示整个年假表,以员工ID作为键,年假记录作为值,如下所示:
public class AnnualLeaveTable {
private Map<Integer, AnnualLeaveRecord> records;
// 构造函数
public AnnualLeaveTable() {
records = new HashMap<>();
}
// 添加一条年假记录
public void addRecord(AnnualLeaveRecord record) {
records.put(record.getEmployeeId(), record);
}
// 获取指定员工的年假总时长
public double getTotalHours(int employeeId) {
AnnualLeaveRecord record = records.get(employeeId);
if (record != null) {
return record.getTotalHours();
}
return 0;
}
// 获取指定员工的已休