🔨 Round off durations before printing

This commit is contained in:
aykhans committed 2024-12-19 21:40:53 +04:00
1 parent 77ddcf722a
commit 18b1c7dae3
4 files changed
+59 -22

No files matched your search

+21
View 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
View 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
}