From c72029aeba896a38b95b569601af24ba09049a81 Mon Sep 17 00:00:00 2001 From: Benoit Lavenier <benoit.lavenier@e-is.pro> Date: Wed, 1 Jun 2022 10:43:12 +0200 Subject: [PATCH] [enh] Add DateUtils.elapsedTime() , useful for log --- .../java/org/duniter/core/util/DateUtils.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/duniter4j-core-shared/src/main/java/org/duniter/core/util/DateUtils.java b/duniter4j-core-shared/src/main/java/org/duniter/core/util/DateUtils.java index 46daf366..7ee52332 100644 --- a/duniter4j-core-shared/src/main/java/org/duniter/core/util/DateUtils.java +++ b/duniter4j-core-shared/src/main/java/org/duniter/core/util/DateUtils.java @@ -85,4 +85,24 @@ public class DateUtils { return nextDayAndHour(dayOfTheWeek, hour).getTime() - System.currentTimeMillis(); } + public static String elapsedTime(long timeInMs) { + long elapsedTime = System.currentTimeMillis() - timeInMs; + StringBuilder sb = new StringBuilder(); + sb.append("in "); + if (elapsedTime < 1000) { + return sb.append(elapsedTime).append("ms").toString(); + } + double seconds = (double) elapsedTime / 1_000; + if (seconds < 60) { + return sb.append(seconds).append("s").toString(); + } + int minutesFloor = (int) Math.floor(seconds / 60); + int secondsFloor = (int) Math.floor(seconds - minutesFloor * 60); + int millis = (int) Math.floor((seconds - secondsFloor - minutesFloor * 60) * 1_000); + + return sb.append(minutesFloor).append("min ") + .append(secondsFloor).append("s ") + .append(millis).append("ms") + .toString(); + } } -- GitLab