notes on format duration
Signed-off-by: Jeff Carr <jcarr@wit.com>
This commit is contained in:
parent
a3c2627caf
commit
73cfe9b760
31
time.go
31
time.go
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue