aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker/utils
diff options
context:
space:
mode:
authorLinnea Gräf <nea@nea.moe>2025-08-02 02:29:44 +0200
committerLinnea Gräf <nea@nea.moe>2025-08-02 02:29:44 +0200
commit5c0a7375e94f0b908086edbecbb0f82838e1b181 (patch)
tree559cf1b44ad8dc7d163bc314f1ddd9222971fa36 /src/main/java/de/hysky/skyblocker/utils
parentc60b85087d63e52eb26d504c7478b8b4663178ce (diff)
downloadSkyblocker-profile-viewer.tar.gz
Skyblocker-profile-viewer.tar.bz2
Skyblocker-profile-viewer.zip
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/utils')
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/Formatters.java34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/main/java/de/hysky/skyblocker/utils/Formatters.java b/src/main/java/de/hysky/skyblocker/utils/Formatters.java
index 21c13d74..22091331 100644
--- a/src/main/java/de/hysky/skyblocker/utils/Formatters.java
+++ b/src/main/java/de/hysky/skyblocker/utils/Formatters.java
@@ -9,6 +9,7 @@ import net.minecraft.util.Util;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.text.ParseException;
+import java.time.Duration;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
@@ -75,6 +76,39 @@ public class Formatters {
}
}
+ public static String formatTimespan(Duration duration) {
+ return formatTimespanMs(duration.toMillis());
+ }
+
+ public static String formatTimespanMs(long millis) {
+ var isNegative = false;
+ if (millis < 0) {
+ isNegative = true;
+ millis = -millis;
+ }
+ long seconds = millis / 1000;
+ millis = millis % 1000;
+ long minutes = seconds / 60;
+ seconds = seconds % 60;
+ long hours = minutes / 60;
+ minutes = minutes % 60;
+ var builder = new StringBuilder();
+ if (hours != 0)
+ builder.append(hours).append(':');
+ if (!builder.isEmpty() || minutes != 0) {
+ builder.append("%02d:".formatted(minutes));
+ }
+ if (!builder.isEmpty()) {
+ builder.append("%02d.".formatted(seconds));
+ } else {
+ builder.append(seconds).append('.');
+ }
+ builder.append(millis / 100);
+ if (isNegative)
+ builder.insert(0, '-');
+ return builder.toString();
+ }
+
/**
* Returns the formatting for the time, always returns 12 hour in test environments.
*/