Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Формат даты вида "30 марта 2010 года" [D6, XP]


Dr. Genius ©   (2010-03-30 20:21:00) 

Здравствуйте!

Имеется ли в Delphi какой-либо стандартный способ представить дату в формате САБЖа?

FormatDateTime('d mmmm yyyy')дает не совсем то, что нужно.


Dr. Genius   (2010-03-30 21:32:00) [1]


> Омлет


> Leonid Troyanovsky


Огромное спасибо! То, что нужно.


Leonid Troyanovsky   (2010-03-30 21:23:00) [2]


> Dr. Genius   (30.03.10 20:21)  


function DateFormatStr(ADate: TDate; AFormat: String): String;
var
 st: TSystemTime;
 buffer: array [0..$FFF] of Char;
begin
 DateTimeToSystemTime(ADate, st);
 Win32Check(GetDateFormat( LOCALE_USER_DEFAULT,
                                        0,
                                        @st,
                                        Pointer(AFormat),
                                        buffer,
                                        SizeOf(buffer)) > 0);
 Result := buffer;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 Caption := DateFormatStr(Date, LongDateFormat);
end;

--
Regards, LVT.


Омлет   (2010-03-30 21:01:00) [3]

Вполне стандартный способ:

function GetDateStr(Date: TDateTime): string;
const
 MONTHS: array[1..12] of string =
   ('января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа',
    'сентября', 'октября', 'ноября', 'декабря');
var
 Y, M, D: Word;
begin
 DecodeDate(Date, Y, M, D);
 Result := Format('%d %s %d года', [D, MONTHS[M], Y]);
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо