notes on format duration

Signed-off-by: Jeff Carr <jcarr@wit.com>
This commit is contained in:
Jeff Carr 2024-10-12 22:51:30 -05:00
parent a3c2627caf
commit 73cfe9b760
1 changed files with 23 additions and 6 deletions

29
time.go
View File

@ -52,31 +52,48 @@ func GetDurationStamp(t time.Time) string {
} }
func FormatDuration(d time.Duration) string { func FormatDuration(d time.Duration) string {
seconds := int(d.Seconds()) % 60
minutes := int(d.Minutes()) % 60
hours := int(d.Hours()) % 24
days := int(d.Hours()) / 24
years := int(d.Hours()) / (24 * 365)
result := "" result := ""
// check if it's more than a year
years := int(d.Hours()) / (24 * 365)
if years > 0 { if years > 0 {
result += fmt.Sprintf("%dy ", years) result += fmt.Sprintf("%dy ", years)
return result return result
} }
// check if it's more than a day
days := int(d.Hours()) / 24
if days > 0 { if days > 0 {
result += fmt.Sprintf("%dd ", days) result += fmt.Sprintf("%dd ", days)
return result return result
} }
// check if it's more than an hour
hours := int(d.Hours()) % 24
if hours > 0 { if hours > 0 {
result += fmt.Sprintf("%dh ", hours) result += fmt.Sprintf("%dh ", hours)
return result return result
} }
// check if it's more than a minute
minutes := int(d.Minutes()) % 60
if minutes > 0 { if minutes > 0 {
result += fmt.Sprintf("%dm ", minutes) result += fmt.Sprintf("%dm ", minutes)
return result return result
} }
// check if it's more than a second
seconds := int(d.Seconds()) % 60
if seconds > 0 { if seconds > 0 {
result += fmt.Sprintf("%ds", seconds) result += fmt.Sprintf("%ds", seconds)
return result
} }
// report in milliseconds
ms := int(d.Milliseconds())
if ms > 100 {
// todo: print .3s, etc ?
}
result += fmt.Sprintf("%dms", ms)
return result return result
} }