support more time units

This commit is contained in:
vilmibm 2020-01-21 14:25:38 -06:00
parent a4b97014d1
commit d7d575fccb
2 changed files with 27 additions and 12 deletions

View file

@ -92,16 +92,26 @@ func Pluralize(num int, thing string) string {
}
}
func fmtDuration(amount int, unit string) string {
return fmt.Sprintf("about %s ago", Pluralize(amount, unit))
}
func FuzzyAgo(ago time.Duration) string {
if ago < time.Minute {
return "less than a minute ago"
}
if ago < time.Hour {
return fmt.Sprintf("about %s ago", Pluralize(int(ago.Minutes()), "minute"))
return fmtDuration(int(ago.Minutes()), "minute")
}
if ago < 24*time.Hour {
return fmt.Sprintf("about %s ago", Pluralize(int(ago.Hours()), "hour"))
return fmtDuration(int(ago.Hours()), "hour")
}
if ago < 30*24*time.Hour {
return fmtDuration(int(ago.Hours())/24, "day")
}
if ago < 365*24*time.Hour {
return fmtDuration(int(ago.Hours())/24/30, "month")
}
return fmt.Sprintf("about %s ago", Pluralize(int(ago.Hours()/24), "day"))
return fmtDuration(int(ago.Hours()/24/365), "year")
}