Java 计算加班时间:如何设置setTimeCount方法传入加班小时数
Java 计算加班时间:如何设置setTimeCount方法传入加班小时数
本文将教你如何使用 Java 计算加班时间,并设置 setTimeCount 方法以整数类型传入加班小时数。
问题背景
假设你有一个 OvertimeInfo 类,用于存储员工加班信息,包括员工ID、加班ID、开始时间、结束时间和加班时长。你想在 setTimeCount 方法中传入加班小时数(以整数类型表示)。
解决方案
为了实现这个目标,你可以在 OvertimeInfo 类中添加一个重载的 setTimeCount 方法,该方法接受加班开始时间和结束时间作为参数,或直接接受加班小时数作为参数。
以下是修改后的 OvertimeInfo 类代码:javaimport java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;
public class OvertimeInfo { private int employeeID; private int overtimeID; private Date startTime; private Date endTime; private int timeCount; // in minutes
// ... 其他 getter 和 setter 方法 ...
public void setTimeCount(int hours) { // 将加班小时数转换为相应的分钟数 int minutes = hours * 60; this.timeCount = minutes; }
public void setTimeCount(Date startTime, Date endTime) { long durationMillis = endTime.getTime() - startTime.getTime(); // 将加班时长转换为相应的分钟数 int minutes = (int) (durationMillis / (1000 * 60)); this.timeCount = minutes; }}
在这个修改后的代码中:
- 我们添加了一个重载的
setTimeCount方法,该方法接受一个整数类型的hours参数,表示加班小时数。* 在方法内部,我们将传入的加班小时数乘以 60 转换为分钟数,并将其赋值给timeCount属性。* 我们保留了接受开始和结束时间作为参数的setTimeCount方法,以便在需要时可以根据时间段计算加班时长。
代码示例
以下是如何使用修改后的 OvertimeInfo 类的示例:javaOvertimeInfo vo = new OvertimeInfo();SimpleDateFormat sdf = new SimpleDateFormat('yyyy-MM-dd HH:mm:ss');Date startTime = null;Date endTime = null;
try { startTime = sdf.parse('2022-04-09 18:00:00'); endTime = sdf.parse('2022-04-09 21:00:00');} catch (ParseException e) { e.printStackTrace();}
vo.setEmployeeID(3);vo.setOvertimeID(303);vo.setStartTime(startTime);vo.setEndTime(endTime);vo.setTimeCount(3); // 传入加班小时数
// 或者使用以下方式传入加班开始时间和结束时间// vo.setTimeCount(startTime, endTime);
System.out.println('加班时长(分钟):' + vo.getTimeCount());
总结
通过添加一个重载的 setTimeCount 方法,你可以方便地以整数类型传入加班小时数,从而简化加班时间的计算。
原文地址: https://www.cveoy.top/t/topic/yKn 著作权归作者所有。请勿转载和采集!