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 方法,你可以方便地以整数类型传入加班小时数,从而简化加班时间的计算。

Java 计算加班时间:如何设置setTimeCount方法传入加班小时数

原文地址: https://www.cveoy.top/t/topic/yKn 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录