Java 计算两个时间段之间相差的天数


计算两个时间差消耗的时间,前提是当前的时间比处理时间要大。

 /**
     * 计算消耗的时间
     *
     * @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();
    }



相关