| | |
| | | if (times == null || times.size() < 2) { |
| | | return BigDecimal.ZERO; |
| | | } |
| | | long totalMinutes = 0L; |
| | | long totalSeconds = 0L; |
| | | for (int i = 1; i < times.size(); i++) { |
| | | long minutes = ChronoUnit.MINUTES.between(times.get(i - 1), times.get(i)); |
| | | if (minutes > 0) { |
| | | totalMinutes += minutes; |
| | | long seconds = Duration.between(times.get(i - 1), times.get(i)).getSeconds(); |
| | | if (seconds > 0) { |
| | | totalSeconds += seconds; |
| | | } |
| | | } |
| | | return BigDecimal.valueOf(totalMinutes) |
| | | return BigDecimal.valueOf(totalSeconds) |
| | | .divide(BigDecimal.valueOf(times.size() - 1L), 4, RoundingMode.HALF_UP) |
| | | .divide(BigDecimal.valueOf(60), 2, RoundingMode.HALF_UP); |
| | | .divide(BigDecimal.valueOf(3600), 2, RoundingMode.HALF_UP); |
| | | } |
| | | |
| | | @Override |