Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.05;
Скачать: CL | DM;

Вниз

Тупой вопрос!!!   Найти похожие ветки 

 
Varf   (2006-10-24 08:50) [0]

Гсопода помогите че то голова не работает!!!!
---есть строка типа: 1.09.2006 00:00 (тип Variant)
нужно ее сделать типом TDate вида:1.09.2006
заранее спасибо!!!


 
Джо ©   (2006-10-24 08:55) [1]

var
 V: Variant;
 Dt: TDate;
...
 V := "1.09.2006 00:00";
 DateSeparator := ".";
 TimeSeparator := ":";
 Dt := StrToDateTime(V);


 
ЮЮ ©   (2006-10-24 08:55) [2]

"разобрать" стоку на составляющие: Copy
преобразовать к целым: StrToInt
преобразовать к TDate: EncodeDateTime


 
ЮЮ ©   (2006-10-24 08:57) [3]

1.09.2006 может быть как 1 сентября, так и 9 января.


 
Джо ©   (2006-10-24 09:02) [4]

>
>
> [3] ЮЮ ©   (24.10.06 08:57)
> 1.09.2006 может быть как 1 сентября, так и 9 января.


Что ж, тогда так:

var
 V: Variant;
 Dt: TDate;
...
 V := "1.09.2006 00:00";
 ShortDateFormat := "d.mm.yyyy";
 Dt := StrToDateTime(V);


 
Varf   (2006-10-24 09:03) [5]

Спасибо всем!!!
я про это не знал:
DateSeparator := ".";
TimeSeparator := ":";


 
Джо ©   (2006-10-24 09:08) [6]

> [5] Varf   (24.10.06 09:03)

Лучше используй подход из поста [4].


 
Varf   (2006-10-24 09:11) [7]

да да спасибо


 
Anatoly Podgoretsky ©   (2006-10-24 09:11) [8]

Это не строка, но если преобразовать к строке, то далее задача простая
StrLength(S, Pos(" ", S) -  1)


 
Anatoly Podgoretsky ©   (2006-10-24 09:12) [9]


> Лучше используй подход из поста [4].

У которого могут быть неожиданные побочные эффекты. Подход не системный.


 
Джо ©   (2006-10-24 09:14) [10]

> [9] Anatoly Podgoretsky ©   (24.10.06 09:12)
Подход не системный.

Обоснуйте.


 
Anatoly Podgoretsky ©   (2006-10-24 09:35) [11]

Ему надо отрезать то что после пробела, а вот сам вопрос

> нужно ее сделать типом TDate

В общем случае не имеет решения, в частном решается, если известен точный формат и он гарантируется.


 
Джо ©   (2006-10-24 09:39) [12]

> [11] Anatoly Podgoretsky ©   (24.10.06 09:35)
> Ему надо отрезать то что после пробела, а вот сам вопрос

Отрезать не проблема :) Да, в принципе, это даже не нужно, достаточно использовать StrToDate.

>
> в частном решается, если
> известен точный формат и он гарантируется.

Формат был описан в [0]. А гарантироваться он обязан в любом случае — что в случае использования готовой библиотечной функции StrToDate[Time], что в случае изготовления самописного парсера, не так ли?


 
Ketmar ©   (2006-10-24 09:45) [13]

как же я люблю велосипеды! в CDM я дату/время честно разламываю на кусочки руками, и делаю EncodeDateTime(). %-)


 
Anatoly Podgoretsky ©   (2006-10-24 12:54) [14]

есть строка типа: 1.09.2006 00:00 (тип Variant)
Тут возможны всякие варианты, поэтому и предложено преобразовать в строку, но тут опять варианты, будет ли в результате строка "1.09.2006 00:00"
Пока для меня вопрос смутный.



Страницы: 1 вся ветка

Текущий архив: 2006.11.05;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.044 c
15-1161178126
infom
2006-10-18 17:28
2006.11.05
Компонент для построения диаграмм.


11-1137505666
Sormy
2006-01-17 16:47
2006.11.05
OpenDirDialog Error in KOL&MCK v2.31


2-1161292479
markers
2006-10-20 01:14
2006.11.05
Регулярные выражения


3-1156938889
Mishenka
2006-08-30 15:54
2006.11.05
Сортировка в запросе


2-1161067677
morda
2006-10-17 10:47
2006.11.05
MySQL