Notes
Функция для определения окончания слова по числительному (1 день, 2 дня, 5 дней)
php:
/** * Функция для определения окончания слова по числительному (1 день, 2 дня, 5 дней) * * @param $num - число integer * @param $words - массив с 3-мя словами * @return mixed */ function num2word($num, $words) { $num = $num % 100; if ($num > 19) { $num = $num % 10; } switch ($num) { case 1: { return($words[0]); } case 2: case 3: case 4: { return($words[1]); } default: { return($words[2]); } } }
echo num2word($days, array('день', 'дня', 'дней'));
golang c тестом:
package main
import (
"fmt"
)
func main() {
yearsWords := map[int]string{0: "год", 1: "года", 2: "лет"}
//yearsWords := map[int]string{0: "день", 1: "дня", 2: "дней"}
for i := 0; i <= 100; i++ {
correctYearWord := num2word(i, yearsWords)
fmt.Println(i, " - ", correctYearWord)
}
}
func num2word(num int, words map[int]string) string {
num = num % 100
if num > 19 {
num = num % 10
}
var word string
if num == 1 {
word = words[0]
} else if num == 2 || num == 3 || num == 4 {
word = words[1]
} else {
word = words[2]
}
return word
}
Афоризм дня:
Кто в верности не клялся никогда, тот никогда ее и не нарушит. (628)
3 years ago
отлично!