Java中如何正确获取Date对象的小时数

在之前的代码中,我错误地使用了getHour方法来获取小时数。在Java中,正确的获取小时数的方法应该是getHours

以下是修正后的代码:

public void setTimeCount(Date startTime, Date endTime) {
    // 获取开始时间和结束时间的小时部分
    int startHour = getHours(startTime);
    int endHour = getHours(endTime);

    // 计算加班小时数
    int hours = endHour - startHour;

    // 设置加班小时数
    setTimeCount(hours);
}

private int getHours(Date date) {
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(date);
    return calendar.get(Calendar.HOUR_OF_DAY);
}

在这个更新的代码中:

  • 使用getHours方法获取Date对象的小时数。
  • 使用Calendar.HOUR_OF_DAY获取24小时制的小时数。

你可以使用以下方式调用setTimeCount方法:

OvertimeInfo 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(startTime, endTime);  // 传入加班开始时间和结束时间

通过以上修改,你可以正确获取加班开始时间和结束时间的小时部分,并将结果传入setTimeCount方法中。

我对之前的错误表示歉意,并希望这个更新的代码能够满足你的需求。如果你还有任何问题,请随时提问。

Java中如何正确获取Date对象的小时数

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

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