Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.03.2010, 12:41   #1
Vit@L
Форумчанин
 
Аватар для Vit@L
 
Регистрация: 24.06.2009
Сообщений: 216
По умолчанию Вопрос по формату Date

Привет всем.
Подскажите пожалуйста как переделать значение даты из к примеру 11.03.2010 в 11 марта 2010. Иначе говоря, мне требуется из компонента datetimeedit1 (в котором дата представлена как 11.03.2010) напечатать в отчете дату как 11 марта 2010 года. Т.е. чтобы из числового значения месяца печаталось его название.
Заранее спасибо.
Водку мы пьем для запаха - а дури нам своей хватает!
Vit@L вне форума Ответить с цитированием
Старый 11.03.2010, 13:07   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ShowMessage(FormatDateTime('dd mmmm yyyy',Now));
если выведет на английском то перезаполните массив
Цитата:
LongMonthNames: array[1..12] of string;
один раз в начале.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 12.03.2010, 07:51   #3
Vit@L
Форумчанин
 
Аватар для Vit@L
 
Регистрация: 24.06.2009
Сообщений: 216
По умолчанию

Спасибо, получилось. Только без ShowMessage, с ним выдавало ошибку.
А вот еще такой вопрос. Сейчас показывает как 11 март 2010, а как сделать чтобы он писал месяцы как положено, т.е. февраля, марта, апреля и т.д.
Заранее спасибо.
Водку мы пьем для запаха - а дури нам своей хватает!
Vit@L вне форума Ответить с цитированием
Старый 12.03.2010, 15:04   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Вам уже ответили и на этот вопрос - см. выше
Цитата:
LongMonthNames: array[1..12] of string;
mihali4 вне форума Ответить с цитированием
Старый 15.03.2010, 05:59   #5
Vit@L
Форумчанин
 
Аватар для Vit@L
 
Регистрация: 24.06.2009
Сообщений: 216
По умолчанию

mihali4, я видел что ответили, но я не совсем понял что с ним надо делать, можно пожалуйста по подробнее? А если еще кусочек кода приведете то буду вам премного благодарен.
Водку мы пьем для запаха - а дури нам своей хватает!
Vit@L вне форума Ответить с цитированием
Старый 15.03.2010, 06:57   #6
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Попробуйте создать массив из названий месяцев с нужным вам окончанием.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 15.03.2010, 08:51   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
я не совсем понял что с ним надо делать
А ты что под словом "отчет" подразумеваешь то?
Обычные отчеты как правило сами согласно настроек переводят дату верно.
Там даже для поля типа дата можно в свойстве DisplayFormat для AdoQuery или че ты там юзаешь.
Вот пропиши в него dd mmmm yyyy, и твой репорт будет именно так интерпретировать дату сам.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.03.2010, 11:42   #8
Vit@L
Форумчанин
 
Аватар для Vit@L
 
Регистрация: 24.06.2009
Сообщений: 216
По умолчанию

И все же, пожалуйста, хоть кто-нибудь, покажите на примере как переделать дату из DateEdit, в котором она отображается как 01.01.2010 в 01 января 2010.
Заранее большое спасибо.
Водку мы пьем для запаха - а дури нам своей хватает!
Vit@L вне форума Ответить с цитированием
Старый 16.03.2010, 12:01   #9
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Код:
const
  Month: array [1 .. 12] of string[20] =
    (' января ',' февряля ',' марта ',' апреля ',' мая ',' июня ',' июля ',' августа ',' сентября ',' октября ',' ноября ',' декабря ');
...
...
...
procedure TForm1.DateTimePicker1Change(Sender: TObject);
var
  yyyy, mmmm, dd: word;
begin
  DecodeDate(DateTimePicker1.Date, yyyy, mmmm, dd);
  Label1.Caption := 'Выбрано - ' + IntToStr(dd) + Month[mmmm] + IntToStr(yyyy) + ' года';
end;
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 16.03.2010, 12:02   #10
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Вставляем в самом начале
Код:
function FormatDate(Year, Month, Day : Dword) : string;
var SysTime : Tsystemtime; Buffer: array[0..1023] of Char;
begin
  SysTime.wYear := Year;
  SysTime.wMonth := Month;
  SysTime.wDay := Day;
  SetString(Result, Buffer, GetDateFormat(LOCALE_SYSTEM_DEFAULT,
  DATE_LONGDATE, @SysTime, nil, Buffer, SizeOf(Buffer)));
end;
Вызываем, например:
Код:
Label1.Caption:=FormatDate(2010,1,1);

Последний раз редактировалось mihali4; 26.03.2010 в 22:38.
mihali4 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск диапазоне по формату ячейки Meta2 Microsoft Office Excel 2 11.11.2009 13:57
Замена (по формату ing60 Microsoft Office Excel 8 22.04.2009 14:15
Date 1.0.4 Bigtyoma Софт 4 14.04.2009 10:02
просумировать по формату StasSv Microsoft Office Excel 1 16.12.2008 09:59
разложить поле MEMО в БД по формату lord БД в Delphi 15 19.02.2007 12:28