Files
gluetun/internal/format/duration.go
Quentin McGaw (desktop) 5b9887dade Maint: use qdm12/gosplash
2021-07-22 20:56:47 +00:00

32 lines
755 B
Go

package format
import (
"fmt"
"time"
)
func Duration(duration time.Duration) string {
switch {
case duration < time.Minute:
seconds := int(duration.Round(time.Second).Seconds())
const two = 2
if seconds < two {
return fmt.Sprintf("%d second", seconds)
}
return fmt.Sprintf("%d seconds", seconds)
case duration <= time.Hour:
minutes := int(duration.Round(time.Minute).Minutes())
if minutes == 1 {
return "1 minute"
}
return fmt.Sprintf("%d minutes", minutes)
case duration < 48*time.Hour:
hours := int(duration.Truncate(time.Hour).Hours())
return fmt.Sprintf("%d hours", hours)
default:
const hoursInDay = 24
days := int(duration.Truncate(time.Hour).Hours() / hoursInDay)
return fmt.Sprintf("%d days", days)
}
}