Бывает необходимо показать пользователю некоторое число с названием и при этом все должно быть написано с правильным окончанием.
Например: 5 дней назад, 23 штуки, 41 рубль.
extension Int {
func days() -> String {
var dayString: String!
if "1".containsString("\(self % 10)") {dayString = "день"}
if "234".containsString("\(self % 10)") {dayString = "дня" }
if "567890".containsString("\(self % 10)") {dayString = "дней"}
if 11...14 ~= self % 100 {dayString = "дней"}
return "\(self) " + dayString
}
}
Используем например так:
let day = 27
let daysAgo = day.days() + " назад" // -> 27 дней назад