diff options
| author | Linnea Gräf <nea@nea.moe> | 2025-08-02 02:29:44 +0200 |
|---|---|---|
| committer | Linnea Gräf <nea@nea.moe> | 2025-08-02 02:29:44 +0200 |
| commit | 5c0a7375e94f0b908086edbecbb0f82838e1b181 (patch) | |
| tree | 559cf1b44ad8dc7d163bc314f1ddd9222971fa36 /src/main/java/de/hysky/skyblocker/utils | |
| parent | c60b85087d63e52eb26d504c7478b8b4663178ce (diff) | |
| download | Skyblocker-profile-viewer.tar.gz Skyblocker-profile-viewer.tar.bz2 Skyblocker-profile-viewer.zip | |
cata pageprofile-viewer
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/utils')
| -rw-r--r-- | src/main/java/de/hysky/skyblocker/utils/Formatters.java | 34 |
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. */ |
