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)
By den
On March 19, 2019