mirror of
https://github.com/aykhans/dodo.git
synced 2025-09-03 18:03:34 +00:00
🔨 Round off durations before printing
This commit is contained in:
21
utils/int.go
Normal file
21
utils/int.go
Normal file
@@ -0,0 +1,21 @@
|
||||
package utils
|
||||
|
||||
type Number interface {
|
||||
int | int8 | int16 | int32 | int64
|
||||
}
|
||||
|
||||
func NumLen[T Number](n T) T {
|
||||
if n < 0 {
|
||||
n = -n
|
||||
}
|
||||
if n == 0 {
|
||||
return 1
|
||||
}
|
||||
|
||||
var count T = 0
|
||||
for n > 0 {
|
||||
n /= 10
|
||||
count++
|
||||
}
|
||||
return count
|
||||
}
|
14
utils/time.go
Normal file
14
utils/time.go
Normal file
@@ -0,0 +1,14 @@
|
||||
package utils
|
||||
|
||||
import "time"
|
||||
|
||||
func DurationRoundBy(duration time.Duration, n int64) time.Duration {
|
||||
if durationLen := NumLen(duration.Nanoseconds()); durationLen > n {
|
||||
roundNum := 1
|
||||
for range durationLen - n {
|
||||
roundNum *= 10
|
||||
}
|
||||
return duration.Round(time.Duration(roundNum))
|
||||
}
|
||||
return duration
|
||||
}
|
Reference in New Issue
Block a user