| khenaidoo | 59ce9dd | 2019-11-11 13:05:32 -0500 | [diff] [blame] | 1 | package humanize |
| 2 | |||||
| 3 | import "strconv" | ||||
| 4 | |||||
| 5 | // Ordinal gives you the input number in a rank/ordinal format. | ||||
| 6 | // | ||||
| 7 | // Ordinal(3) -> 3rd | ||||
| 8 | func Ordinal(x int) string { | ||||
| 9 | suffix := "th" | ||||
| 10 | switch x % 10 { | ||||
| 11 | case 1: | ||||
| 12 | if x%100 != 11 { | ||||
| 13 | suffix = "st" | ||||
| 14 | } | ||||
| 15 | case 2: | ||||
| 16 | if x%100 != 12 { | ||||
| 17 | suffix = "nd" | ||||
| 18 | } | ||||
| 19 | case 3: | ||||
| 20 | if x%100 != 13 { | ||||
| 21 | suffix = "rd" | ||||
| 22 | } | ||||
| 23 | } | ||||
| 24 | return strconv.Itoa(x) + suffix | ||||
| 25 | } | ||||