From 75b6097c557a60c1139abb0cb84c00a98fc9da75 Mon Sep 17 00:00:00 2001 From: thankyouverycool <66646555+thankyouverycool@users.noreply.github.com> Date: Thu, 4 Aug 2022 09:36:18 -0400 Subject: [PATCH] AK: Add human_readable_digital_time() helper Converts seconds into a readable digital format. For example: 30 seconds = "00:30" 90 seconds = "01:30" 86401 seconds = "24:00:01" And so on. --- AK/NumberFormat.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/AK/NumberFormat.h b/AK/NumberFormat.h index ce778eccc7..610ad686f4 100644 --- a/AK/NumberFormat.h +++ b/AK/NumberFormat.h @@ -63,8 +63,27 @@ static inline String human_readable_time(i64 time_in_seconds) return builder.to_string(); } +static inline String human_readable_digital_time(i64 time_in_seconds) +{ + auto hours = time_in_seconds / 3600; + time_in_seconds = time_in_seconds % 3600; + + auto minutes = time_in_seconds / 60; + time_in_seconds = time_in_seconds % 60; + + StringBuilder builder; + + if (hours > 0) + builder.appendff("{:02}:", hours); + builder.appendff("{:02}:", minutes); + builder.appendff("{:02}", time_in_seconds); + + return builder.to_string(); } +} + +using AK::human_readable_digital_time; using AK::human_readable_size; using AK::human_readable_size_long; using AK::human_readable_time;