@corclubs said in как преобразовать число в текст?:
а как начать использовать данный код?
вставить код в действие "Выполнить код"
PropisData = function (data) //аргумент data должен быть строкой
{
//Проверка, соответствует ли дата формату ДД.ММ.ГГГГ
if ( !/^\d\d\.\d\d\.\d\d\d\d$/.test(data) )
{
return "не является датой по григорианскому календарю в формате ДД.ММ.ГГГГ";
}
var d = +data.substr(0, 2), //день
m = +data.substr(3, 2), //месяц
y = +data.substr(6, 4); //год
//Проверка, корректная ли дата по григорианскому календарю
// До 1582 г. все года н.э., делящиеся на 4, считаются високосными,
// после только те года, которые делятся на 4 и не деляться на 100 или делятся на 400;
// если нужно учитывать високосные года до принятия григорианского календаря в России в 1918 г.,
// то замените в коде выражение "y < 1582" на "y < 1918".
if (d == 0 || m == 0 || m > 12 || y == 0
|| ((m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) && d > 31)
|| ((m == 4 || m == 6 || m == 9 || m == 11) && d > 30)
|| (m == 2 && !(d < 29 || (d < 30 && y % 4 == 0 && (y < 1582 || y % 100 != 0 || y % 400 == 0))))
) {
return "не является датой по григорианскому календарю в формате ДД.ММ.ГГГГ";
}
var Day1, Month1, Year1, Year2, Year3, Year4, Year5, Year6, Year7, Year8, yearPropis;
Day1 = ["", "первое ", "второе ", "третье ", "четвёртое ", "пятое ", "шестое ", "седьмое ",
"восьмое ", "девятое ", "десятое ", "одиннадцатое ", "двенадцатое ", "тринадцатое ",
"четырнадцатое ", "пятнадцатое ", "шестнадцатое ", "семнадцатое ", "восемнадцатое ",
"девятнадцатое ", "двадцатое ", "двадцать первое ", "двадцать второе ", "двадцать третье ",
"двадцать четвёртое ", "двадцать пятое ", "двадцать шестое ", "двадцать седьмое ",
"двадцать восьмое ", "двадцать девятое ", "тридцатое ", "тридцать первое "];
Month1 = ["", "января ", "февраля ", "марта ", "апреля ", "мая ", "июня ", "июля ",
"августа ", "сентября ", "октября ", "ноября ", "декабря "];
Year1 = ["", "первого ", "второго ", "третьего ", "четвёртого ", "пятого ",
"шестого ", "седьмого ", "восьмого ", "девятого "];
Year8 = ["", "одиннадцатого ", "двенадцатого ", "тринадцатого ", "четырнадцатого ", "пятнадцатого ",
"шестнадцатого ", "семнадцатого ", "восемнадцатого ", "девятнадцатого "];
Year2 = ["", "десятого ", "двадцатого ", "тридцатого ", "сорокового ", "пятидесятого ",
"шестидесятого ", "семидесятого ", "восьмидесятого ", "девяностого "];
Year3 = ["", "сотого ", "двухсотого ", "трёхсотого ", "четырёхсотого ", "пятисотого ",
"шестисотого ", "семисотого ", "восьмисотого ", "девятисотого "];
Year4 = ["", "тысячного ", "двухтысячного ", "трёхтысячного ", "четырёхтысячного ", "пятитысячного ",
"шеститысячного ", "семитысячного ", "восьмитысячного ", "девятитысячного "];
Year5 = ["", "", "двадцать ", "тридцать ", "сорок ", "пятьдесят ", "шестьдесят ",
"семьдесят ", "восемьдесят ", "девяносто "];
Year6 = ["", "сто ", "двести ", "триста ", "четыреста ", "пятьсот ",
"шестьсот ", "семьсот ", "восемьсот ", "девятьсот "];
Year7 = ["", "тысяча ", "две тысячи ", "три тысячи ", "четыре тысячи ", "пять тысяч ",
"шесть тысяч ", "семь тысяч ", "восемь тысяч ", "девять тысяч "];
y = y + "";
if (y.length == 4) //Проверка 4-х значных годов: 1000,1001,...,9999
{ if (+y % 1000 == 0) {
yearPropis = Year4[+y.substr(0, 1)]; //1000,2000,...,9000
}
else if (+y % 100 == 0) {
yearPropis = Year7[+y.substr(0, 1)] + Year3[+y.substr(1, 1)]; //1100,1200,...,9900
}
else {
yearPropis = Year7[+y.substr(0, 1)] + Year6[+y.substr(1, 1)];
if (+y % 10 == 0) {
yearPropis += Year2[+y.substr(2, 1)];
}
else if (+y.substr(2, 2) < 10) {
yearPropis += Year1[+y.substr(3, 1)];
}
else if (+y.substr(2, 2) < 20) {
yearPropis += Year8[+y.substr(3, 1)];
}
else {
yearPropis += Year5[+y.substr(2, 1)] + Year1[+y.substr(3, 1)];
}
}
}
else if (y.length == 3) //Проверка 3-х значных годов: 100,101,...,999
{ if (+y % 100 == 0) {
yearPropis = Year3[+y.substr(0, 1)];
}
else if (+y % 10 == 0) {
yearPropis = Year6[+y.substr(0, 1)] + Year2[+y.substr(1, 1)];
}
else if (+y.substr(1, 2) < 10) {
yearPropis = Year6[+y.substr(0, 1)] + Year1[+y.substr(2, 1)];
}
else if (+y.substr(1, 2) < 20) {
yearPropis = Year6[+y.substr(0, 1)] + Year8[+y.substr(2, 1)];
}
else {
yearPropis = Year6[+y.substr(0, 1)] + Year5[+y.substr(1, 1)] + Year1[+y.substr(2, 1)];
}
}
else if (y.length == 2) //Проверка 2-х значных годов: 10,11,...,99
{ if (+y % 10 == 0) {
yearPropis = Year2[+y.substr(0, 1)];
}
else if (+y.substr(0, 2) < 20) {
yearPropis = Year8[+y.substr(1, 1)];
}
else {
yearPropis = Year5[+y.substr(0, 1)] + Year1[+y.substr(1, 1)];
}
}
else
{ yearPropis = Year1[+y]; }
return (Day1[d] + Month1[m] + yearPropis + "года");
}
log (PropisData('25.05.2018'))
