khenaidoo | ab1f7bd | 2019-11-14 14:00:27 -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 | } |