@@ -176,29 +176,30 @@ impl fmt::Display for HumanReadable {
176176
177177 if sec. is_infinite ( ) {
178178 write ! ( f, "Unknown" )
179- } else if sec > 48. * 3600. {
180- let sec = self . 0 ;
181- let d = sec / ( 24. * 3600. ) ;
182- let h = sec % ( 24. * 3600. ) ;
183- let min = sec % 3600. ;
184- let sec = sec % 60. ;
185-
186- write ! ( f, "{:3} days {:2} h {:2} min {:2} s" , d, h, min, sec) // XYZ days PQ h RS min TU s
187- } else if sec > 6_000. {
188- let sec = self . 0 ;
189- let h = sec / 3600. ;
190- let min = sec % 3600. ;
191- let sec = sec % 60. ;
192-
193- write ! ( f, "{:3} h {:2} min {:2} s" , h, min, sec) // XYZ h PQ min RS s
194- } else if sec > 100. {
195- let sec = self . 0 ;
196- let min = sec / 60. ;
197- let sec = sec % 60. ;
198-
199- write ! ( f, "{:3} min {:2} s" , min, sec) // XYZ min PQ s
200179 } else {
201- write ! ( f, "{:3.0} s" , self . 0 ) // XYZ s
180+ // we're doing modular arithmetic, treat as integer
181+ let sec = sec as u32 ;
182+ if sec > 48 * 3600 {
183+ let d = sec / ( 24 * 3600 ) ;
184+ let h = sec % ( 24 * 3600 ) ;
185+ let min = sec % 3600 ;
186+ let sec = sec % 60 ;
187+
188+ write ! ( f, "{:3} days {:2} h {:2} min {:2} s" , d, h, min, sec) // XYZ days PQ h RS min TU s
189+ } else if sec > 6_000 {
190+ let h = sec / 3600 ;
191+ let min = sec % 3600 ;
192+ let sec = sec % 60 ;
193+
194+ write ! ( f, "{:3} h {:2} min {:2} s" , h, min, sec) // XYZ h PQ min RS s
195+ } else if sec > 100 {
196+ let min = sec / 60 ;
197+ let sec = sec % 60 ;
198+
199+ write ! ( f, "{:3} min {:2} s" , min, sec) // XYZ min PQ s
200+ } else {
201+ write ! ( f, "{:3.0} s" , self . 0 ) // XYZ s
202+ }
202203 }
203204 } else {
204205 const KIB : f64 = 1024.0 ;
0 commit comments