По нажатию кнопки "Дата" - текущую дату в формате "ДД, месяц_прописью, ГГГГ г." - Lazarus

Узнай цену своей работы

Формулировка задачи:

По нажатию кнопки "Дата" - текущую дату в формате "ДД, месяц_прописью, ГГГГ г." (Пример, 15 марта 2018 г.").
procedure TForm1.Button1Click(Sender: TObject);
var
  Year, Month, Day: Word;
  s: string ; // ...
begin
  DecodeDate(Now, Year, Month, Day);
  Edit1.Text:=(' ' + IntToStr(Day) + #13 +
                         ' ' + IntToStr(Month) + #13 +
                         ' ' + IntToStr(Year) + 'p.');
 // case Month of   
 // 3: s:= 'березня';
 // end; 
 
end;
Нужно вместо "3" поставить значение прописью, только не "15 Март 2018г.", а "15 МартА 2018г. Вот что у меня: 14 3 2018г. Думал через кейсы, но не получается...

Решение задачи: «По нажатию кнопки "Дата" - текущую дату в формате "ДД, месяц_прописью, ГГГГ г."»

textual
Листинг программы
procedure TForm1.Button1Click(Sender: TObject);
var
  fs : TFormatSettings;
  names : TMonthNameArray = 
    ('января', 'февраля', 'марта', 'апреля', 'мая', 'июня',
     'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря');
begin
  fs := DefaultFormatSettings;
  fs.LongMonthNames := names; // временно подменяем названия месяцев на нужные
  Edit1.Text := FormatDateTime('dd mmmm yyyy г.', Now, fs); // и форматируем стандартными средствами, но учитывая нужные названия месяцев
end;

Объяснение кода листинга программы

  1. Создается процедура обработчика события кнопки с именем Button1Click
  2. Устанавливается переменная fs типа TFormatSettings равной значению по умолчанию
  3. Создается массив строк с именами месяцев на русском языке
  4. Временное изменение настроек формата даты на использование имен месяцев из массива
  5. Форматирование текущей даты в формате ДД, месяц_прописью, ГГГГ г. и вывод в поле ввода с именем Edit1
  6. Восстановление стандартных настроек формата даты

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.833 из 5
Похожие ответы