41 lines
1.3 KiB
Diff
41 lines
1.3 KiB
Diff
From 7eade2544e1c45bc516744aeaccc45df1d8f42df Mon Sep 17 00:00:00 2001
|
|
From: Kyle Walker <kwalker@redhat.com>
|
|
Date: Tue, 11 Feb 2020 14:30:39 -0500
|
|
Subject: [PATCH] whattime: Refactor the pretty-print evaluation
|
|
|
|
This avoids rounding errors such as in the case of 364 days of uptime which
|
|
results in only output that prints at the hour and below.
|
|
---
|
|
proc/whattime.c | 15 ++++++++++++---
|
|
1 file changed, 12 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/proc/whattime.c b/proc/whattime.c
|
|
index c223cad..3e1b65c 100644
|
|
--- a/proc/whattime.c
|
|
+++ b/proc/whattime.c
|
|
@@ -69,9 +69,18 @@ char *sprint_uptime(int human_readable) {
|
|
|
|
if (human_readable) {
|
|
updecades = (int) uptime_secs / (60*60*24*365*10);
|
|
- upyears = ((int) uptime_secs / (60*60*24*365)) % 10;
|
|
- upweeks = ((int) uptime_secs / (60*60*24*7)) % 52;
|
|
- updays = ((int) uptime_secs / (60*60*24)) % 7;
|
|
+ if (updecades)
|
|
+ uptime_secs -= updecades * (60*60*24*365*10);
|
|
+
|
|
+ upyears = (int) uptime_secs / (60*60*24*365);
|
|
+ if (upyears)
|
|
+ uptime_secs -= upyears * (60*60*24*365);
|
|
+
|
|
+ upweeks = (int) uptime_secs / (60*60*24*7);
|
|
+ if (upweeks)
|
|
+ uptime_secs -= upweeks * (60*60*24*7);
|
|
+
|
|
+ updays = (int) uptime_secs / (60*60*24);
|
|
}
|
|
else
|
|
updays = (int) uptime_secs / (60*60*24);
|
|
--
|
|
2.24.1
|
|
|