计算两个时间差消耗的时间,前提是当前的时间比处理时间要大。
/**
* 计算消耗的时间
*
* @param verifyTime 处理的时间
* @return 已消耗的时间
* @throws Exception
*/
private String calDayNumbers(Date verifyTime) throws Exception {
Tools.log("处理时间是:" + verifyTime );
StringBuilder builder = new StringBuilder(DateUtils.toString(verifyTime, "yyyy-MM-dd") + ":已耗时");
Integer year = 0;
Integer month = 0;
Integer day = 0;
//1、当前天数大于对应时间天数时
if (DateUtils.getDate() >= DateUtils.getDate(verifyTime)) {
day = DateUtils.getDate() - DateUtils.getDate(verifyTime);
if (DateUtils.getMonth() >= DateUtils.getMonth(verifyTime)) {
month = DateUtils.getMonth() - DateUtils.getMonth(verifyTime);
year = DateUtils.getYear() - DateUtils.getYear(verifyTime);
} else if (DateUtils.getYear() > DateUtils.getYear(verifyTime)) {
month = DateUtils.getMonth() - DateUtils.getMonth(verifyTime) + 12;
year = DateUtils.getYear() - DateUtils.getYear(verifyTime) - 1;
}
//2、当前月份大于对应时间月份,并小于等于对应时间天数时
} else if (DateUtils.getMonth() > DateUtils.getMonth(verifyTime)) {
Integer resultDays = calDayNumbersByMonth(DateUtils.getYear(), DateUtils.getMonth() + 1);
day = (DateUtils.getDate() + resultDays) - DateUtils.getDate(verifyTime);
month = DateUtils.getMonth() - DateUtils.getMonth(verifyTime) - 1;
year = DateUtils.getYear() - DateUtils.getYear(verifyTime);
//3、当前年份大于对应时间年份,并小于等于对应时间月份和小于等于对应时间天数时
} else if (DateUtils.getYear() > DateUtils.getYear(verifyTime)) {
//取这一年最后一个月的天数
Integer resultDays = calDayNumbersByMonth(DateUtils.getYear(), DateUtils.getMonth() + 1);
day = (DateUtils.getDate() + resultDays) - DateUtils.getDate(verifyTime);
month = DateUtils.getMonth() - DateUtils.getMonth(verifyTime) - 1 + 12;
year = DateUtils.getYear() - DateUtils.getYear(verifyTime) - 1;
}
Tools.log("年:" + year + "月:" + month + "日:" + day);
if (year != 0) {
builder.append(year);
builder.append("年");
}
if (month != 0) {
builder.append(month);
builder.append("月");
}
if (day != 0) {
builder.append(day);
builder.append("天");
}
return builder.toString();
}