Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/action/RecyclingRecordAction.java =================================================================== diff -u -r32891 -r32894 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/action/RecyclingRecordAction.java (.../RecyclingRecordAction.java) (revision 32891) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/action/RecyclingRecordAction.java (.../RecyclingRecordAction.java) (revision 32894) @@ -3829,13 +3829,25 @@ long newDateTime = new Date().getTime(); Double outTime = Double.valueOf(outTimeInt); Date endDate = yearToMinutes.parse(endDateStr); + Date startDate = yearToMinutes.parse(startDateStr); + Double ind = 24 - (1.0 * (endDate.getTime() - startDate.getTime()) / 1000 /(60 * 60)); Double hour = 1.0 * (newDateTime - endDate.getTime()) / 1000 / (60 * 60); if(hour.compareTo(outTime) >= 0){ outTime = outTime*60*60*1000; }else{ - Date startDate = yearToMinutes.parse(startDateStr); newDateTime = startDate.getTime(); - outTime = (outTime - hour)*60*60*1000; + Double restTime = outTime - hour; + Double b = MathTools.sub(restTime, 10.0).doubleValue(); + if(b.compareTo(0.00) <= 0){ + outTime = restTime*60*60*1000; + }else{ + calendar.add(Calendar.DAY_OF_MONTH,-1); + startDateStr = yearToDay.format(new Date(calendar.getTimeInMillis())) + " " + arr.get(0).toString(); + startDate = yearToMinutes.parse(startDateStr); + newDateTime = startDate.getTime(); + restTime = outTime - hour - ind; + outTime = restTime*60*60*1000; + } } newDateTime-=outTime; returnDate = new Date(newDateTime);