由于在项目中需要计算一个任务从创建到完成操作时的工时数,在网上找了很多方法,都不是我想要的,我需要计算的是小时,而网上很多都是两个时间之间相差多少天多少小时多少分钟多少秒,好不容易找到一个差不多是我想要的样子,然后经过修改后如下:
//计算两个时间之间的小时数
private static BigDecimal getDifferHour(Date startDate, Date endDate) {
float dayM = 1000 * 24 * 60 * 60;
float hourM = 1000 * 60 * 60;
float differ = endDate.getTime() - startDate.getTime();
BigDecimal hour = BigDecimal.valueOf(differ / dayM / hourM + 24 * (differ / dayM));
return hour;
}
调用:
//获取开始时间
Date createDate = eXmQuestion.getCreateDate();
//计算耗费的时间
BigDecimal costTime = getDifferHour(createDate, new Date());