Java中如何正确获取Date对象的小时数
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方法中。
我对之前的错误表示歉意,并希望这个更新的代码能够满足你的需求。如果你还有任何问题,请随时提问。
原文地址: https://www.cveoy.top/t/topic/zdu 著作权归作者所有。请勿转载和采集!