summaryrefslogtreecommitdiff
path: root/hardinfo2/util.c
diff options
context:
space:
mode:
Diffstat (limited to 'hardinfo2/util.c')
-rw-r--r--hardinfo2/util.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/hardinfo2/util.c b/hardinfo2/util.c
index 288dda6c..265ebd3a 100644
--- a/hardinfo2/util.c
+++ b/hardinfo2/util.c
@@ -33,6 +33,36 @@
#define MiB 1048576
#define GiB 1073741824
+gchar *seconds_to_string(unsigned int seconds)
+{
+ unsigned int hours, minutes, days;
+
+ minutes = seconds / 60;
+ hours = minutes / 60;
+ minutes %= 60;
+ days = hours / 24;
+ hours %= 24;
+
+#define plural(x) ((x > 1) ? "s" : "")
+
+ if (days < 1) {
+ if (hours < 1) {
+ return g_strdup_printf("%d minute%s", minutes,
+ plural(minutes));
+ } else {
+ return g_strdup_printf("%d hour%s, %d minute%s",
+ hours,
+ plural(hours), minutes,
+ plural(minutes));
+ }
+ }
+
+ return g_strdup_printf("%d day%s, %d hour%s and %d minute%s",
+ days, plural(days), hours,
+ plural(hours), minutes,
+ plural(minutes));
+}
+
inline gchar *size_human_readable(gfloat size)
{
if (size < KiB)