紧接上篇 这次计算每人一共节省多少 超时多少 其中taskRespVOList这个列表内需有开始和结束时间俩个字段 代码如下可自行修改!

/**
 * 获取差值:总时间
 * @param statisticsTaskRespVO 统计任务时长
 * @param taskRespVOList 任务列表
 */
public void getTotalDurationTime(StatisticsTaskRespVO statisticsTaskRespVO, List<TaskRespVO> taskRespVOList) {
    long differenceDay = 0;
    long differenceHour = 0;
    for (TaskRespVO taskRespVO : taskRespVOList) {
        Map<String, Object> durationTimeMap = getDurationTime(taskRespVO.getRealEndDate(), taskRespVO.getProjectEndDate());
        Object mapDay = durationTimeMap.get("day");
        Object mapHour = durationTimeMap.get("hour");
        long day = 0;
        long hour = 0;
        if (null != mapDay) {
            day = Long.parseLong(String.valueOf(mapDay));
        }
        if (null != mapHour) {
            hour = Long.parseLong(String.valueOf(mapHour));
        }
        boolean bol = (boolean) durationTimeMap.get("bol");
        if (bol) {
            if (0 < day) {
                differenceDay += day;
            }
            if (0 < hour) {
                differenceHour += hour;
            }
        } else {
            if (0 > day) {
                differenceDay += day;
            }
            if (0 > hour) {
                differenceHour += hour;
            }
        }
    }
    if (differenceHour > 24) {
        long addDays = differenceHour / 24;
        differenceHour -= addDays * 24;
        differenceDay += addDays;
    }
    StringBuilder stringBuilder = new StringBuilder();
    statisticsTaskRespVO.setDurationTimeType(0);
    if (differenceDay > 0) {
        if (differenceHour < 0) {
            long zDifferenceHour = Long.parseLong(String.valueOf(differenceHour).substring(1));
            stringBuilder.append("共节省:").append(differenceDay - 1).append("天").append(24 - zDifferenceHour).append("小时");
            statisticsTaskRespVO.setDurationTimeType(1);
        } else {
            statisticsTaskRespVO.setDurationTimeType(1);
            stringBuilder.append("共节省:").append(differenceDay).append("天").append(differenceHour).append("小时");
        }
    } else if (differenceDay == 0) {
        if (differenceHour > 0) {
            statisticsTaskRespVO.setDurationTimeType(1);
            stringBuilder.append("共节省:").append(differenceHour).append("小时");
        } else if (differenceHour == 0) {
            statisticsTaskRespVO.setDurationTimeType(3);
            stringBuilder.append("刚刚好!");
        } else {
            statisticsTaskRespVO.setDurationTimeType(2);
            stringBuilder.append("共超时:").append(String.valueOf(differenceHour).substring(1)).append("小时");
        }
    } else {
        statisticsTaskRespVO.setDurationTimeType(2);
        stringBuilder.append("共超时:").append(String.valueOf(differenceDay).substring(1)).append("天")
                .append(String.valueOf(differenceHour).substring(1)).append("小时");
    }
    statisticsTaskRespVO.setTotalDurationTime(stringBuilder.toString());
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值