From 027ddec93cd3afbbf7567c9c67f3d36e94b3fc8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Ko=C5=BEusznik?= <jan@kozusznik.cz> Date: Wed, 2 May 2018 09:58:12 +0200 Subject: [PATCH] feat: format remaining time --- .../core/UpdatableBenchmarkJob.java | 14 +++++++------- .../ui/BenchmarkSPIMController.java | 4 ++-- .../ui/RemainingTimeFormater.java | 9 +++++++++ .../java/cz/it4i/fiji/haas/TestTimeFormater.java | 16 ++++++++++++++++ 4 files changed, 34 insertions(+), 9 deletions(-) create mode 100644 haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/RemainingTimeFormater.java create mode 100644 haas-spim-benchmark/src/test/java/cz/it4i/fiji/haas/TestTimeFormater.java diff --git a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/UpdatableBenchmarkJob.java b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/UpdatableBenchmarkJob.java index 4c55ae3a..10fcbd22 100644 --- a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/UpdatableBenchmarkJob.java +++ b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/UpdatableBenchmarkJob.java @@ -25,7 +25,7 @@ public class UpdatableBenchmarkJob extends UpdatableObservableValue<BenchmarkJob public interface TransferProgress { - public Long getRemainingSeconds(); + public Long getRemainingMiliseconds(); public boolean isDone(); @@ -66,7 +66,7 @@ public class UpdatableBenchmarkJob extends UpdatableObservableValue<BenchmarkJob private boolean working; // private boolean done; private long start; - private Long remainingSeconds; + private Long remainingMiliseconds; private Float remainingPercents; private Supplier<Boolean> doneStatusSupplier; private Consumer<Boolean> doneStatusConsumer; @@ -80,11 +80,11 @@ public class UpdatableBenchmarkJob extends UpdatableObservableValue<BenchmarkJob public synchronized void setCount(int count, int total) { if (total < -1) { working = false; - remainingSeconds = null; + remainingMiliseconds = null; remainingPercents = null; } else { long delta = System.currentTimeMillis() - start; - remainingSeconds = (long) ((double) delta / count * (total - count)) / 1000; + remainingMiliseconds = (long) ((double) delta / count * (total - count)); remainingPercents = (((float) total - count) / total * 100); } fireValueChangedEvent(); @@ -106,7 +106,7 @@ public class UpdatableBenchmarkJob extends UpdatableObservableValue<BenchmarkJob setDone(true); } working = false; - remainingSeconds = 0l; + remainingMiliseconds = 0l; remainingPercents = 0.f; fireValueChangedEvent(); } @@ -117,8 +117,8 @@ public class UpdatableBenchmarkJob extends UpdatableObservableValue<BenchmarkJob } @Override - public synchronized Long getRemainingSeconds() { - return remainingSeconds; + public synchronized Long getRemainingMiliseconds() { + return remainingMiliseconds; } @Override diff --git a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/BenchmarkSPIMController.java b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/BenchmarkSPIMController.java index 0470a0fa..a8e6ef50 100644 --- a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/BenchmarkSPIMController.java +++ b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/BenchmarkSPIMController.java @@ -210,8 +210,8 @@ public class BenchmarkSPIMController extends BorderPane implements CloseableCont if (!progress.isWorking() && !progress.isDone()) { return ""; } else if (progress.isWorking()) { - Long secs = progress.getRemainingSeconds(); - return string + "ing - time remains " + (secs != null ? secs : "N/A"); + Long msecs = progress.getRemainingMiliseconds(); + return string + "ing - time remains " + (msecs != null ? RemainingTimeFormater.format(msecs) : "N/A"); } else if (progress.isDone()) { return string + "ed"; } diff --git a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/RemainingTimeFormater.java b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/RemainingTimeFormater.java new file mode 100644 index 00000000..da24c79a --- /dev/null +++ b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/RemainingTimeFormater.java @@ -0,0 +1,9 @@ +package cz.it4i.fiji.haas_spim_benchmark.ui; + +public class RemainingTimeFormater { + + public static String format(long duration) { + long s = duration / 1000; + return String.format("%d:%02d:%02d", s / 3600, (s % 3600) / 60, (s % 60)); + } +} diff --git a/haas-spim-benchmark/src/test/java/cz/it4i/fiji/haas/TestTimeFormater.java b/haas-spim-benchmark/src/test/java/cz/it4i/fiji/haas/TestTimeFormater.java new file mode 100644 index 00000000..1fabc27c --- /dev/null +++ b/haas-spim-benchmark/src/test/java/cz/it4i/fiji/haas/TestTimeFormater.java @@ -0,0 +1,16 @@ +package cz.it4i.fiji.haas; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import cz.it4i.fiji.haas_spim_benchmark.ui.RemainingTimeFormater; + + +public class TestTimeFormater { + + public static final Logger log = LoggerFactory.getLogger(cz.it4i.fiji.haas.TestTimeFormater.class); + + public static void main(String[] args) { + log.info( RemainingTimeFormater.format((25*3600 + 5*60 + 6) * 1000 + 200)); + } +} -- GitLab