powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / функция которая преобразует строку в datetime ро шаблону без разделителй yyyyymmdd
25 сообщений из 63, страница 1 из 3
функция которая преобразует строку в datetime ро шаблону без разделителй yyyyymmdd
    #39621474
Myp3_u_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не мог найти подобной функции , нужная же весчьщ
написал сам, может кому пригодиться
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
Function StrToDateTimeFmt(dt, Frm, t, frmt :String): TDateTime;
Var
 yy, mm, dd : string;
 hh, mi, ss , ms: string;
 i: integer;
begin
  frm := uppercase(frm);
  frmt := uppercase(frmt);
  for i:=1 to length(frm) do
  begin
    if frm[i]='Y' then yy:=yy+dt[i];
    if frm[i]='M' then mm:=mm+dt[i];
    if frm[i]='D' then dd:=dd+dt[i];
  end;
  for i:=1 to length(frmt) do
  begin
    if frmt[i]='H' then hh:=hh+t[i];
    if frmt[i]='M' then mi:=mi+t[i];
    if frmt[i]='S' then ss:=ss+t[i];
  end;
  if ss='' then ss:='00';
  if mi='' then mi:='00';
  result :=  EncodeDateTime(strtoint(yy), strtoint(mm), strtoint(dd),
  strtoint(hh), strtoint(mi), strtoint(ss), 0 );
end;


------
www.orasource.ru
...
Рейтинг: 0 / 0
функция которая преобразует строку в datetime ро шаблону без разделителй yyyyymmdd
    #39621478
jmp_original
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мдя... тяжёлый случай.
...
Рейтинг: 0 / 0
функция которая преобразует строку в datetime ро шаблону без разделителй yyyyymmdd
    #39621482
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Myp3_u_K,

А если в параметрах формата я AABBCC передам?
...
Рейтинг: 0 / 0
функция которая преобразует строку в datetime ро шаблону без разделителй yyyyymmdd
    #39621484
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
функция которая преобразует строку в datetime ро шаблону без разделителй yyyyymmdd
    #39621486
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Myp3_u_K,

Или вместо цифирок какую-нить рандомную строку символов? По меньшей мере стоит генерировать Exception с вразумительным сообщением - "неправильный формат" и т.п.
...
Рейтинг: 0 / 0
функция которая преобразует строку в datetime ро шаблону без разделителй yyyyymmdd
    #39621510
Myp3_u_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMasterMyp3_u_K,

Или вместо цифирок какую-нить рандомную строку символов? По меньшей мере стоит генерировать Exception с вразумительным сообщением - "неправильный формат" и т.п.
вот и генерите ,
try except написать несложно
...
Рейтинг: 0 / 0
функция которая преобразует строку в datetime ро шаблону без разделителй yyyyymmdd
    #39621511
Myp3_u_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman http://www.sql.ru/forum/1036550/konvertirovanie-stroki-formata-yyymmdd-v-datu?hl=yyyymmdd
там нет решения , зачем вы эту тему приводите , я ее видел
...
Рейтинг: 0 / 0
функция которая преобразует строку в datetime ро шаблону без разделителй yyyyymmdd
    #39621512
Myp3_u_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMasterMyp3_u_K,

А если в параметрах формата я AABBCC передам?
в моем случае форматы заданы и есть из перечень , физически нельзя передать неправильный формат
если нужна обработка исключений добавьте
...
Рейтинг: 0 / 0
функция которая преобразует строку в datetime ро шаблону без разделителй yyyyymmdd
    #39621533
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Myp3_u_K,

как минимум есть одна ошибка - не инициализируете локальные переменные.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
Var
 yy, mm, dd : string;
begin
...
  for i:=1 to length(frm) do
  begin
    if frm[i]='Y' then yy:=yy+dt[i];
    if frm[i]='M' then mm:=mm+dt[i];
    if frm[i]='D' then dd:=dd+dt[i];


в переменных yy, mm, dd изначально может быть что угодно, вовсе не обязательно пустые строки.
...
Рейтинг: 0 / 0
функция которая преобразует строку в datetime ро шаблону без разделителй yyyyymmdd
    #39621554
asviridenkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s62Myp3_u_K,

в переменных yy, mm, dd изначально может быть что угодно, вовсе не обязательно пустые строки.

Really?
...
Рейтинг: 0 / 0
функция которая преобразует строку в datetime ро шаблону без разделителй yyyyymmdd
    #39621699
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Myp3_u_Kwadman http://www.sql.ru/forum/1036550/konvertirovanie-stroki-formata-yyymmdd-v-datu?hl=yyyymmdd
там нет решения , зачем вы эту тему приводите , я ее видел
Там их несколько. По уровню примерно такие же.
...
Рейтинг: 0 / 0
функция которая преобразует строку в datetime ро шаблону без разделителй yyyyymmdd
    #39621775
Myp3_u_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMasterMyp3_u_K,

А если в параметрах формата я AABBCC передам?
ну это будет характеризовать вас определенным образом ...
...
Рейтинг: 0 / 0
функция которая преобразует строку в datetime ро шаблону без разделителй yyyyymmdd
    #39621778
Myp3_u_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanMyp3_u_Kпропущено...

там нет решения , зачем вы эту тему приводите , я ее видел
Там их несколько. По уровню примерно такие же.
они все не подходят, догадайтесь почему ... но я не пробовал из jvcl может там и норм
...
Рейтинг: 0 / 0
функция которая преобразует строку в datetime ро шаблону без разделителй yyyyymmdd
    #39621780
Myp3_u_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s62Myp3_u_K,

как минимум есть одна ошибка - не инициализируете локальные переменные.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
Var
 yy, mm, dd : string;
begin
...
  for i:=1 to length(frm) do
  begin
    if frm[i]='Y' then yy:=yy+dt[i];
    if frm[i]='M' then mm:=mm+dt[i];
    if frm[i]='D' then dd:=dd+dt[i];


в переменных yy, mm, dd изначально может быть что угодно, вовсе не обязательно пустые строки.
вы из Амстердама что ли пишете?
...
Рейтинг: 0 / 0
функция которая преобразует строку в datetime ро шаблону без разделителй yyyyymmdd
    #39621782
Василий №2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
s62в переменных yy, mm, dd изначально может быть что угодно, вовсе не обязательно пустые строки.
Ложное срабатывание, строки - управляемые типы, т.ч. их обнулением занимается компилятор
...
Рейтинг: 0 / 0
функция которая преобразует строку в datetime ро шаблону без разделителй yyyyymmdd
    #39621788
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий №2s62в переменных yy, mm, dd изначально может быть что угодно, вовсе не обязательно пустые строки.
Ложное срабатывание, строки - управляемые типы, т.ч. их обнулением занимается компилятор

Я предпочитаю, чтобы код был простым и читаемым и переменные перед подобного рода использованием были явно инициализированы.
...
Рейтинг: 0 / 0
функция которая преобразует строку в datetime ро шаблону без разделителй yyyyymmdd
    #39621797
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asviridenkovs62Myp3_u_K,

в переменных yy, mm, dd изначально может быть что угодно, вовсе не обязательно пустые строки.

Really?Нет, ошибся. Строка будет пустая.
...
Рейтинг: 0 / 0
функция которая преобразует строку в datetime ро шаблону без разделителй yyyyymmdd
    #39621802
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Myp3_u_K,

Перед этим:
Код: pascal
1.
2.
3.
for i:=1 to length(frm) do
  begin
    if frm[i]='Y' then yy:=yy+dt[i];


Нужно это:
Код: pascal
1.
2.
3.
if Length(frm)<>Length(dt) then
   raise Exception.Create(....);
   // ну или не raise ;)


Рассказать почему?
...
Рейтинг: 0 / 0
функция которая преобразует строку в datetime ро шаблону без разделителй yyyyymmdd
    #39621828
Myp3_u_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMasterMyp3_u_K,

Перед этим:
Код: pascal
1.
2.
3.
for i:=1 to length(frm) do
  begin
    if frm[i]='Y' then yy:=yy+dt[i];


Нужно это:
Код: pascal
1.
2.
3.
if Length(frm)<>Length(dt) then
   raise Exception.Create(....);
   // ну или не raise ;)


Рассказать почему?
у меня такая ситуация невозможна , форматы и даты регламентированы
если вам надо добавьте Exception...
...
Рейтинг: 0 / 0
функция которая преобразует строку в datetime ро шаблону без разделителй yyyyymmdd
    #39621839
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMasterMyp3_u_K,

Перед этим:
Код: pascal
1.
2.
3.
for i:=1 to length(frm) do
  begin
    if frm[i]='Y' then yy:=yy+dt[i];


Нужно это:
Код: pascal
1.
2.
3.
if Length(frm)<>Length(dt) then
   raise Exception.Create(....);
   // ну или не raise ;)


Рассказать почему?

Рассказать, почему за raise нетипизированный Exception надо руки отрывать ?
Вот гансмокер рассказывает:
http://delphikingdom.ru/asp/viewitem.asp?catalogid=1392
...
Рейтинг: 0 / 0
функция которая преобразует строку в datetime ро шаблону без разделителй yyyyymmdd
    #39621848
Myp3_u_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не ругайтесь девочки, выложил функцию как базис , несложно доработать под себя , добавить обработку исключений, проверку форматов, все, что ван необходимо для работы...
...
Рейтинг: 0 / 0
функция которая преобразует строку в datetime ро шаблону без разделителй yyyyymmdd
    #39621856
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Myp3_u_Kне ругайтесь девочки, выложил функцию как базис , несложно доработать под себя , добавить обработку исключений, проверку форматов, все, что ван необходимо для работы...

Я бы посоветовал вам использовать этот базис как ректальный суппозиторий. Удачи.
...
Рейтинг: 0 / 0
функция которая преобразует строку в datetime ро шаблону без разделителй yyyyymmdd
    #39621876
Myp3_u_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
schiMyp3_u_Kне ругайтесь девочки, выложил функцию как базис , несложно доработать под себя , добавить обработку исключений, проверку форматов, все, что ван необходимо для работы...

Я бы посоветовал вам использовать этот базис как ректальный суппозиторий. Удачи.
не помню, что спрашивал совета у тупой телки...
...
Рейтинг: 0 / 0
функция которая преобразует строку в datetime ро шаблону без разделителй yyyyymmdd
    #39621881
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Myp3_u_K,

автору меня такая ситуация невозможна , форматы и даты регламентированы

Сегодня невозможна. А завтра или лет через 5 как найдешь.
...
Рейтинг: 0 / 0
функция которая преобразует строку в datetime ро шаблону без разделителй yyyyymmdd
    #39621885
Myp3_u_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaonMyp3_u_K,

автору меня такая ситуация невозможна , форматы и даты регламентированы
Сегодня невозможна. А завтра или лет через 5 как найдешь.
нет , фиксированные форматы, по другому вся система не сможет работать...
...
Рейтинг: 0 / 0
25 сообщений из 63, страница 1 из 3
Форумы / Delphi [игнор отключен] [закрыт для гостей] / функция которая преобразует строку в datetime ро шаблону без разделителй yyyyymmdd
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]