Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> StrToDate 
V
    Опции темы
RapMan
Дата 21.3.2009, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 13.6.2008

Репутация: нет
Всего: нет



Доброе время суток

У меня вопрос, если передать параметр функции StrToDate - '01.03.2009' - то все гуд работает, а если передать '01.Март.2009' (или такого типа). Как можно конвертировать дату ввиду '01.Март.2009' в TDateTime ?

Заранее спасибо!
--------------------
здесь хреновые модераторы...
PM MAIL   Вверх
Данкинг
Дата 21.3.2009, 23:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 9
Всего: 130



Ручками, наверное, как ещё. Т.е. вместо "март" ставишь "03" и т.д.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
RapMan
Дата 21.3.2009, 23:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 13.6.2008

Репутация: нет
Всего: нет



Да я в общем так и думал, но может есть какие-то апи
--------------------
здесь хреновые модераторы...
PM MAIL   Вверх
Kbl4AH
Дата 22.3.2009, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 1
Всего: 15



RapMan, вроде только ручками можно:
Есть готовые переменные-массивы ShortMonthNames, LongMonthNames... Вырезай из строки название месяца... Ищи в цикле его номер... Переводи строку в дату используя найденный номер месяца...
PM MAIL ICQ   Вверх
MadCoder
  Дата 22.3.2009, 16:58 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 478
Регистрация: 24.8.2007
Где: Москва

Репутация: 1
Всего: 2



Есть функция FormatDateTime, ее кури.
PM WWW ICQ   Вверх
MetalFan
Дата 22.3.2009, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 62
Всего: 128



MadCoder, а чем она может помочь?


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
MadCoder
Дата 22.3.2009, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 478
Регистрация: 24.8.2007
Где: Москва

Репутация: 1
Всего: 2



Что-то вроде этого:
Код

ShortDateFormat:='dd.mmmm.yyyy';
StrToDate('01.Март.2009');

PM WWW ICQ   Вверх
Kbl4AH
Дата 22.3.2009, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 1
Всего: 15



Цитата(MadCoder @  22.3.2009,  16:58 Найти цитируемый пост)
Есть функция FormatDateTime, ее кури.

Ее курить без мазы, т.к. при конвертировании строки в дату месяц должен быть в диапазоне 1..12...
И ShortDateFormat здесь не спасет...

Это сообщение отредактировал(а) Kbl4AH - 22.3.2009, 19:37
PM MAIL ICQ   Вверх
Poseidon
Дата 23.3.2009, 00:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



Код

function MyStrToDate(StrDate: string): TDate;
begin
  StrDate:= StringReplace(StrDate, 'январь', '1', [rfIgnoreCase]);
  StrDate:= StringReplace(StrDate, 'февраль', '2', [rfIgnoreCase]);
  StrDate:= StringReplace(StrDate, 'март', '3', [rfIgnoreCase]);
  {так для всех месяцев}
  Result:= StrToDate(StrDate);
end;


хоть и через Ж, но работать будет smile

Это сообщение отредактировал(а) Poseidon - 23.3.2009, 00:35


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Frees
Дата 23.3.2009, 08:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 9
Всего: 54



VarToDateTime

Добавлено через 49 секунд
Код

var
D1, D2, D3 : TDateTime;
begin
D1 := VarToDateTime('December 6, 1969');
D2 := VarToDateTime('6-Apr-1998');
D3 := VarToDateTime('1998-Apr-6');
ShowMessage(DateToStr(D1)+' '+DateToStr(D2)+' '+
DateToStr(D3));
end;

DRKB©


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
pseud
Дата 23.3.2009, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 10
Всего: 40



Цитата(Frees @  23.3.2009,  08:05 Найти цитируемый пост)
VarToDateTime

все три случая:
Цитата

---------------------------
Project1
---------------------------
Could not convert variant of type (String) into type (Date)
---------------------------
ОК   
---------------------------




--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
Frees
Дата 23.3.2009, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 9
Всего: 54



Цитата(pseud @  23.3.2009,  12:19 Найти цитируемый пост)
все три случая:

действительно

но если по русски месяца написать то все Ок, проверил

Код

var
D1, D2, D3 : TDateTime;
begin
try
D1 := VarToDateTime('Декабрь 6, 1969');
D2 := VarToDateTime('6-Апр-1998');
D3 := VarToDateTime('1998-Апр-6');
finally
ShowMessage(DateToStr(D1)+' '+DateToStr(D2)+' '+
DateToStr(D3));
end;



--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
Kbl4AH
Дата 23.3.2009, 13:33 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 1
Всего: 15



pseud, пример Frees - рабочий...
Измени в винде регион на англоязычный или месяцы по-русски напиши...
PM MAIL ICQ   Вверх
Frees
Дата 23.3.2009, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 9
Всего: 54



Цитата(Kbl4AH @  23.3.2009,  15:33 Найти цитируемый пост)
пример Frees - рабочий...

пример с DRKB

Это сообщение отредактировал(а) Frees - 23.3.2009, 13:38


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
pseud
Дата 23.3.2009, 14:38 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 10
Всего: 40



Цитата(Kbl4AH @  23.3.2009,  13:33 Найти цитируемый пост)
pseud, пример Frees - рабочий...

не всегда...
Цитата(Kbl4AH @  23.3.2009,  13:33 Найти цитируемый пост)
Измени в винде регион на англоязычный или месяцы по-русски напиши...

ты считаешь, это правило хорошего тона - рекомендовать юзеру подстроить винду под твою прогу?

Добавлено @ 14:42
RapMan, если твой формат не имеет ничего общего с форматами винды, то придется написать свою функцию конвертации.

Это сообщение отредактировал(а) pseud - 23.3.2009, 14:42


--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0662 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.