Преобразование даты типа TDateTime в дату прописьюDelphi , Синтаксис , ПреобразованияПреобразование даты типа TDateTime в дату прописью
Автор: LexusR { **** UBPFD *********** by delphibase.endimus.com **** >> преобразование даты типа TDateTime в дату прописью преобразование даты типа TDateTime в дату прописью типа : "четырнадцатое ноября две тысячи третьего года" Зависимости: Windows,SysUtils Автор: LexusR, ICQ:41627622, Novosibirsk Copyright: LexusR Дата: 12 декабря 2003 г. ***************************************************** } const MonthNames: array[1..12] of string = ('января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря'); NamesOfThousand0: array[1..2] of string = ('тысячного', 'двухтысячного'); NamesOfThousand: array[1..2] of string = ('одна тысяча', 'две тысячи'); NamesOfHandreds0: array[1..9] of string = ('сотого', 'двухсотого', 'трехсотого', 'четырехсотого', 'пятисотого', 'шестисотого', 'семисотого', 'восьмисотого', 'девятисотого'); NamesOfHandreds: array[1..9] of string('сто', 'двести', 'триста', 'четыреста', 'пятьсот', 'шестьсот', 'семьсот', 'восемьсот', 'девятьсот'); NamesOfTens00: array[1..3] of string('десятое', 'двадцатое', 'тридцатое'); NamesOfTens0: array[1..9] of string('десятого', 'двадцатого', 'тридцатого', 'сорокового', 'пятидесятого', 'шестидесятого', 'семидесятого', 'восьмидесятого', 'девяностого'); NamesOfTens: array[2..9] of string = ('двадцать', 'тридцать', 'сорок', 'пятьдесят', 'шестьдесят', 'семьдесят', 'восемьдесят', 'девяносто'); NamesOfFistTen0: array[1..9] of string = ('одинадцатое', 'двенадцатое', 'тринадцатое', 'четырнадцатое', 'пятнадцатое', 'шестнадцатое', 'семнадцатое', 'восемьнадцатое', 'девятнадцатое'); NamesOfFistTen: array[1..9] of string = ('одинадцатого', 'двенадцатого', 'тринадцатого', 'четырнадцатого', 'пятнадцатого', 'шестнадцатого', 'семнадцатого', 'восемьнадцатого', 'девятнадцатого'); NamesOfUnits0: array[1..9] of string = ('первое', 'второе', 'третье', 'четвертое', 'пятое', 'шестое', 'седьмое', 'восьмое', 'девятое'); NamesOfUnits: array[1..9] of string = ('первого', 'второго', 'третьего', 'четвертого', 'пятого', 'шестого', 'седьмого', 'восьмого', 'девятого'); function ConvertDateToString(Date: TDateTime): string; var year, month, day: word; th, hn, tn, un: word; begin DecodeDate(Date, year, month, day); // разбираем число tn := day div 10; un := day mod 10; if un = 0 then result := NamesOfTens00[tn] else if tn = 0 then result := NamesOfUnits0[un] else if tn = 1 then result := NamesOfFistTen0[un] else result := NamesOfTens[tn] + ' ' + NamesOfUnits0[un]; // разбираем месяц result := result + ' ' + MonthNames[month]; // разбираем год th := year div 1000; hn := year mod 1000 div 100; tn := year mod 1000 mod 100 div 10; un := year mod 1000 mod 100 mod 10; if ((hn = 0) and (tn = 0) and (un = 0)) then begin result := result + ' ' + NamesOfThousand0[th] + ' года'; exit; end else result := result + ' ' + NamesOfThousand[th]; if hn > 0 then begin if ((tn = 0) and (un = 0)) then begin result := result + ' ' + NamesOfHandreds0[hn] + ' года'; exit; end else result := result + ' ' + NamesOfHandreds[hn]; end; if un = 0 then result := result + ' ' + NamesOfTens0[tn] else if tn = 0 then result := result + ' ' + NamesOfUnits[un] else if tn = 1 then result := result + ' ' + NamesOfFistTen[un] else result := result + ' ' + NamesOfTens[tn] + ' ' + NamesOfUnits[un]; result := result + ' года' end; Статья Преобразование даты типа TDateTime в дату прописью раздела Синтаксис Преобразования может быть полезна для разработчиков на Delphi и FreePascal. Комментарии и вопросыМатериалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Преобразования ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |