Перем
ЧислоСЗ,
Месяц,
ГодСЗ;
далее объявляем и заполняем их данными:
Месяц= СоздатьОбъект("СписокЗначений")
; Месяц.
ДобавитьЗначение("января", 1)
; Месяц.
ДобавитьЗначение("февраля", 2)
; Месяц.
ДобавитьЗначение("марта", 3)
; Месяц.
ДобавитьЗначение("апреля", 4)
; Месяц.
ДобавитьЗначение("мая", 5)
; Месяц.
ДобавитьЗначение("июня", 6)
; Месяц.
ДобавитьЗначение("июля", 7)
; Месяц.
ДобавитьЗначение("августа", 8)
; Месяц.
ДобавитьЗначение("сентября", 9)
; Месяц.
ДобавитьЗначение("октября", 10)
; Месяц.
ДобавитьЗначение("ноября", 11)
; Месяц.
ДобавитьЗначение("декабря", 12)
; ЧислоСЗ= СоздатьОбъект("СписокЗначений")
; ЧислоСЗ.
ДобавитьЗначение("Первое", 1)
; ЧислоСЗ.
ДобавитьЗначение("Второе", 2)
; ЧислоСЗ.
ДобавитьЗначение("Третье", 3)
; ЧислоСЗ.
ДобавитьЗначение("Четвертое", 4)
; ЧислоСЗ.
ДобавитьЗначение("Пятое", 5)
; ЧислоСЗ.
ДобавитьЗначение("Шестое", 6)
; ЧислоСЗ.
ДобавитьЗначение("Седьмое", 7)
; ЧислоСЗ.
ДобавитьЗначение("Восьмое", 8)
; ЧислоСЗ.
ДобавитьЗначение("Девятое", 9)
; ЧислоСЗ.
ДобавитьЗначение("Десятое", 10)
; ЧислоСЗ.
ДобавитьЗначение("Одинадцатое", 11)
; ЧислоСЗ.
ДобавитьЗначение("Двенадцатое", 12)
; ЧислоСЗ.
ДобавитьЗначение("Тринадцатое", 13)
; ЧислоСЗ.
ДобавитьЗначение("Четырнадцатое", 14)
; ЧислоСЗ.
ДобавитьЗначение("Пятнадцатое", 15)
; ЧислоСЗ.
ДобавитьЗначение("Шестнадцатое", 16)
; ЧислоСЗ.
ДобавитьЗначение("Семнадцатое", 17)
; ЧислоСЗ.
ДобавитьЗначение("Восемнадцатое", 18)
; ЧислоСЗ.
ДобавитьЗначение("Девятнадцатое", 19)
; ЧислоСЗ.
ДобавитьЗначение("Двадцатое", 20)
; ЧислоСЗ.
ДобавитьЗначение("Тридцатое", 30)
; ЧислоСЗ.
ДобавитьЗначение("Тридцат первое", 31)
; ЧислоСЗ.
ДобавитьЗначение("Двадцать", "2Х")
; ЧислоСЗ.
ДобавитьЗначение("Тридцать", "3Х")
; ЧислоСЗ.
ДобавитьЗначение("Сорок" "4Х")
; ЧислоСЗ.
ДобавитьЗначение("Пятьдесят", "5Х")
; ЧислоСЗ.
ДобавитьЗначение("Шестьдесят", "6Х")
; ЧислоСЗ.
ДобавитьЗначение("Семьдесят", "7Х")
; ЧислоСЗ.
ДобавитьЗначение("Восемьдесят", "8Х")
; ЧислоСЗ.
ДобавитьЗначение("Девяносто", "9Х")
; ГодСЗ= СоздатьОбъект("СписокЗначений")
; ГодСЗ.
ДобавитьЗначение("одна тысяча", 1000)
; ГодСЗ.
ДобавитьЗначение("две тысячи", 2000)
; ГодСЗ.
ДобавитьЗначение("первый", 1)
; ГодСЗ.
ДобавитьЗначение("второй", 2)
; ГодСЗ.
ДобавитьЗначение("третий", 3)
; ГодСЗ.
ДобавитьЗначение("четвертый", 4)
; ГодСЗ.
ДобавитьЗначение("пятый", 5)
; ГодСЗ.
ДобавитьЗначение("шестой", 6)
; ГодСЗ.
ДобавитьЗначение("седьмой", 7)
; ГодСЗ.
ДобавитьЗначение("восьмой", 8)
; ГодСЗ.
ДобавитьЗначение("девятый", 9)
; ГодСЗ.
ДобавитьЗначение("десятый", 10)
; ГодСЗ.
ДобавитьЗначение("одинадцатый", 11)
; ГодСЗ.
ДобавитьЗначение("двенадцатый", 12)
; ГодСЗ.
ДобавитьЗначение("тринадцатый", 13)
; ГодСЗ.
ДобавитьЗначение("четырнадцатый", 14)
; ГодСЗ.
ДобавитьЗначение("пятнадцатый", 15)
; ГодСЗ.
ДобавитьЗначение("шестнадцатый", 16)
; ГодСЗ.
ДобавитьЗначение("семнадцатый", 17)
; ГодСЗ.
ДобавитьЗначение("восемьнадцатый",18)
; ГодСЗ.
ДобавитьЗначение("девятнадцатый", 19)
; ГодСЗ.
ДобавитьЗначение("двадцаты", 20)
; ГодСЗ.
ДобавитьЗначение("тридцатый", 30)
; ГодСЗ.
ДобавитьЗначение("сороковой", 40)
; ГодСЗ.
ДобавитьЗначение("пятидесятый", 50)
; ГодСЗ.
ДобавитьЗначение("шестидесятый", 60)
; ГодСЗ.
ДобавитьЗначение("семидесятый", 70)
; ГодСЗ.
ДобавитьЗначение("восвидесятый", 80)
; ГодСЗ.
ДобавитьЗначение("девяностый", 90)
;
номерМесяца=
ДатаМесяц(
ДатаА)
; МесяцСтр=
месяц.
Получить(
номерМесяца)
; числоДаты=
ДатаЧисло(
ДатаА)
;Если (
числоДаты<= 20)
или(
числоДаты>= 30)
тогда ЧислоСтр=
ЧислоСЗ.
Получить(
числоДаты)
; иначе ЧислоСтр=
ЧислоСЗ.
Получить("2Х") + " " +
Нрег(
ЧислоСЗ.
Получить(
числоДаты-20))
;КонецЕсли
; годДаты=
строка(
ДатаГод(
датаА))
; тысячЛет=
Число(
Лев(
годДаты, 1))
; стоЛет=
Число(
Сред(
годДаты, 2, 1))
; копЛет=
Число(
Сред(
годДаты, 3, 2))
; ГодСТр=
ГодСЗ.
Получить(
тысячЛет* 1000) +
?(
стоЛет=9, " девятьсот ", " ")
;Если
копЛет<20
тогда ГодСТр=
ГодСТр+
ГодСЗ.
Получить(
копЛет)
; иначеЕсли прав(
строка(
копЛет), 1)<>"0"
тогда номМес=
цел(
копЛет/10)
; ГодСТр=
ГодСТр+
Нрег(
ЧислоСЗ.
Получить(
строка(
номМес)+"Х")) + " " +
Нрег(
ГодСЗ.
Получить(
копЛет-
номМес*10))
; иначе ГодСТр=
ГодСТр+
Нрег(
ГодСЗ.
Получить(
копЛет))
;КонецЕсли
;
ну а дальше выводим дату, или возвращаем:
сообщить(
строка(
ДатаА) + ": " +
ЧислоСтр+ " " +
МесяцСтр+ " " +
ГодСТр+ " год")
;
Возврат
ЧислоСтр+ " " +
МесяцСтр+ " " +
ГодСТр+ " год")
;