#!/usr/local/bin/lua53 -- Месяцы m = { "января", "февраля", "марта", "апреля", "мая", "июня", "июля", "августа", "сентября", "октября", "ноября", "декабря" } -- Единицы l1 = { { "первое", "одна", "первого" }, { "второе", "две", "второго" }, { "третье", "три", "третьего" }, { "четвертое", "четыре", "четвертого" }, { "пятое", "пять", "пятого" }, { "шестое", "шесть", "шестого" }, { "седьмое", "семь", "седьмого" }, { "восьмое", "восемь", "восьмого" }, { "девятое", "девять", "девятого" }, { "десятое", "десять", "десятого" }, { "одиннадцатое", "одиннадцать", "одиннадцатого" }, { "двенадцатое", "двенадцать", "двенадцатого" }, { "тринадцатое", "тринадцать", "тринадцатого" }, { "четырнадцатое", "четырнадцать", "четырнадцатого" }, { "пятнадцатое", "пятнадцать", "пятнадцатого" }, { "шестнадцатое", "шестнадцать", "шестнадцатого" }, { "семнадцатое", "семнадцать", "семнадцатого" }, { "восемнадцатое", "восемнадцать", "восемнадцатого" }, { "девятнадцатое", "девятнадцать", "девятнадцатого" }, { "двадцатое", "двадцать", "двадцатого" } } -- Десятки l10 = { { "десятое", "десять", "десятого" }, { "двадцатое", "двадцать", "двадцатого" }, { "тридцатое", "тридцать", "тридцатого" }, { "", "сорок", "сорокового" }, { "", "пятьдесят", "пятидесятого" }, { "", "шестьдесят", "шестидесятого" }, { "", "семьдесят", "семидесятого" }, { "", "восемьдесят", "восьмидесятого" }, { "", "девяносто", "девяностого" } } -- Сотни l100 = { { "сто", "сотого" }, { "двести", "двухсотого" }, { "триста", "трехсотого" }, { "четыреста", "четырехсотого" }, { "пятьсот", "пятисотого" }, { "шестьсот", "шестисотого" }, { "семьсот", "семисотого" }, { "восемьсот", "восьмисотого" }, { "девятьсот", "девятисотого" } } -- Тысячи l1000 = { "тысячного", "двухтысячного", "трехтысячного", "четырехтысячного", "пятитысячного", "шеститысячного", "семитысячного", "восьмитысячного", "девятитысячного" } sym = { "тысяча", "тысячи", "тысяч" } d = tonumber(os.date('%d')) lettday = "" if ( math.fmod(d, 10) == 0 ) then lettday = l10[d / 10][1] else if ( d <= 20 ) then lettday = l1[d][1] else n10 = d // 10 n1 = math.fmod(d, 10) lettday = l10[n10][2] .. " " .. l1[n1][1] end end lettmonth = m[tonumber(os.date('%m'))] y = tonumber(os.date('%Y')) n1000 = y // 1000 n100 = math.fmod(y,1000) // 100 n10 = math.fmod(y,100) n1 = math.fmod(n10,10) lettyear = "" if ( n1000 > 0 and n100 == 0 and n10 == 0 and n1 == 0 ) then lettyear = l1000[n1000] elseif ( n1000 > 0 ) then lettyear = l1[n1000][2] if ( n1000 == 1 ) then lettyear = lettyear .. " " .. sym[1] elseif ( n1000 < 5 ) then lettyear = lettyear .. " " .. sym[2] else lettyear = lettyear .. " " .. sym[3] end end if ( n100 > 0 and n10 == 0 and n1 == 0 ) then lettyear = lettyear .. " " .. l100[n100][2] elseif ( n100 > 0 ) then lettyear = lettyear .. " " .. l100[n100][1] end if ( n10 > 0 and n1 == 0 ) then lettyear = lettyear .. " " .. l10[n10 / 10][3] elseif ( n10 < 20 ) then lettyear = lettyear .. " " .. l1[n10][3] else lettyear = lettyear .. " " .. l10[n10 // 10][2] .. " " .. l1[n1][3] end letters = lettday .. " " .. lettmonth .. " " .. lettyear .. " года" print(letters)