diff --git a/src/lib/utils.c b/src/lib/utils.c index 6b227d8..1d383ad 100644 --- a/src/lib/utils.c +++ b/src/lib/utils.c @@ -26,7 +26,7 @@ char *format_duration(unsigned long micros, char *buf) { } else if (micros < 60000000 - 1000000) { sprintf(buf, "%.1f s", (double) micros / 1000000); } else if (micros < 6000000000) { - sprintf(buf, "%.1f min", (double) micros / 1000000 / 60); + sprintf(buf, "%li:%02li min", micros / 1000000 / 60, micros / 1000000 % 60); } else { sprintf(buf, "%.0f min", (double) micros / 1000000 / 60); } diff --git a/test/test_utils.c b/test/test_utils.c index 912a017..ade27c7 100644 --- a/test/test_utils.c +++ b/test/test_utils.c @@ -72,9 +72,9 @@ ParameterizedTestParameters(utils, format_duration) { {999999, "1.0 s"}, {1000000, "1.0 s"}, {3000000, "3.0 s"}, - {1000000 * 60, "1.0 min"}, - {1000000 * 60 * 30L - 30000000, "29.5 min"}, - {1000000 * 60 * 60L, "60.0 min"}, + {1000000 * 60, "1:00 min"}, + {1000000 * 60 * 30L - 30000000, "29:30 min"}, + {1000000 * 60 * 60L, "60:00 min"}, {1000000 * 60 * 120L, "120 min"}, }; return cr_make_param_array(struct format_duration_t, params, sizeof(params) / sizeof(struct format_duration_t));