|
Как склонять год, месяц и день?
| ☑ |
0
bebibo
19.08.19
✎
11:47
|
Здравствуйте. Как сделать, чтобы к примеру вместо этого: "2 лет 1 месяцев 3 дней" было: "2 года 1 месяц 3 дня"?
Заранее спасибо)
|
|
1
Волшебник
19.08.19
✎
11:51
|
Если последняя цифра = 1 тогда "год", "месяц", день"
ИначеЕсли последняя цифра от 2 до 5 тогда "года", "месяца", "дня"
Иначе "лет", "месяцев", "Дней"
КонецЕсли;
|
|
2
vladko
19.08.19
✎
11:52
|
1 год
2-4 года
5-20 лет
.....
1 месяц
2-4 месяца
5-20 месяцев
......
1 день
2-4 дня
5-20 дней
....
(0) в чём проблема написать через условия проверки количества лет, месяцев, дней эти значения?
|
|
3
bebibo
19.08.19
✎
11:53
|
У меня просто макет и из-за этого туплю
ОбластьСправки.Параметры.СтажГод = окр(Лет);
ОбластьСправки.Параметры.СтажМес =окр(Месяцев);
ОбластьСправки.Параметры.СтажДень = окр(Дней);
|
|
4
vladko
19.08.19
✎
11:56
|
(3) заведи в макете параметры для текстовых переменных под слова Лет, Месяцев, Дней и до заполнения параметров получи их значения через проверку условий на количественные переменные.
|
|
5
Натуральный Йог
19.08.19
✎
12:03
|
(1) 12 года
|
|
6
DrWatson
19.08.19
✎
12:06
|
Теперь можно и без если обходиться:
СтрокаСЧислом(";день;;дня;дней;дня", Дней, ВидЧисловогоЗначения.Количественное);
|
|
7
Волшебник
19.08.19
✎
14:41
|
(5) хм... Вот так точнее:
Если от 5 до 20 то "лет", "месяцев", "дней"
ИначеЕсли последняя цифра = 1 тогда "год", "месяц", день"
ИначеЕсли последняя цифра от 2 до 4 тогда "года", "месяца", "дня"
Иначе "лет", "месяцев", "дней"
КонецЕсли;
|
|
8
mistеr
19.08.19
✎
15:30
|
(3) "Лет: 2, месяцев: 1, дней: 3"
И склонять не нужно.
|
|
9
fisher
19.08.19
✎
15:52
|
Когда-то свою функцию написал, а потом в БСП нашел:
СтроковыеФункцииКлиентСервер.ЧислоЦифрамиПредметИсчисленияПрописью()
|
|
10
fisher
19.08.19
✎
16:04
|
(6) Да, в 10 релизе добавили. Теперь можно и через нее.
|
|