Вниз
Скачать: CL | DM;

Проблема со сложением значений дата и время   Найти похожие ветки 

← →
Dima2002   (2003-12-02 20:13) [0]

Всем привет!
У меня такая проблема:
На форме есть два компонента TDateTimePicker -
В первом набирается значение времени ETime:=EebTime.Time;(в FormCreate EebTime.Time:=Now), во втором дата в формате dd.mm.yyyy:
Reb:=RebEdit.Date;
Затем мне надо сложить их так, чтобы в базе хранилась дата в формате dd.mm.yyyy hh.mm.
Я пытаюсь выполнить следующее:
EndofTime:=StrToDateTime(DateTimeToStr(ReE)+" "+TimeToStr(ETime));
Но по ShowMessage(DateTimeToStr(Endoftime));
у меня выводится
например :
02.12.2003 13:54
И так всё время,при вводе в поля компонентов любых значений, всмысле 13:54 в любое время суток:))

Что это может быть? Системное время установлено нормальное и часы идут:)))


← →
Вася Пупкин ©   (2003-12-02 20:52) [1]

Брр... а зачем такие сложности?


← →
Вася Пупкин ©   (2003-12-02 20:55) [2]

RebEdit.Time:=EebTime.Time;
ShowMessage(DateTimeToStr(RebEdit.DateTime));


← →
Вася Пупкин ©   (2003-12-03 00:47) [3]

А что касается твоего вопроса:
>EndofTime:=StrToDateTime( DateTimeToStr(ReE)+" "+TimeToStr(ETime));
>Но по ShowMessage(DateTimeToStr(Endoftime));
>у меня выводится
>например :
>02.12.2003 13:54
>И так всё время,при вводе в поля компонентов любых значений, >всмысле 13:54 в любое время суток:))
Естественно...потому что тут нужно было не DateTimeToStr(ReE) а DateToStr(ReE)


← →
Dima2002   (2003-12-03 09:47) [4]

Спасибо за ответы.
Но дело в том, что у меня ShowMessage используется только для отладки, в ней не суть, мне нужно хранить в базе значение Дата + Время, вообщем значение даты с точностью до минут, так после сложения
EndofTime:=StrToDateTime(DateTimeToStr(ReE)+" "+TimeToStr(ETime));
я как раз и рассчитываю получить это значение.
Если складывать просто
EndofTime:=ReE+ETime;
То в базу валится значение 2107 год и время что то около 4:30
а по
EndofTime:=StrToDate(DateTimeToStr(ReE)+" "+TimeToStr(ETime));
Вылетает исключение:
""03.12.2003 13:54:42 9:42:03"- not valid date"
где 9:42 - правильное значение:))


← →
Dima2002   (2003-12-03 09:49) [5]

Просто очень не хочется заводить под значение времени отдельное поле в таблице, да их к тому же придётся делать 2, так как у меня в базе храниться интервал с границами типа DateTime, с точностью до минут.


← →
Dima2002   (2003-12-03 10:04) [6]

Только что доперло:)) Всем СПАСИБО!
Получилось так:
EndofTime:=StrToDateTime(DateToStr(ReE)+" "+TimeToStr(ETime));
Выдаёт правильное значение:))


← →
Вася Пупкин ©   (2003-12-03 10:32) [7]

Похоже, еще не доперло -)
>Если складывать просто
>EndofTime:=ReE+ETime;
>То в базу валится значение 2107 год и время что то около 4:30

значити, что-то делаешь неправильно. Поставь эксперимент. DateTimePicker1 - DkDate, DateTimePicker2 - DkTime. Выстави в первом дату, во втором время и
DateTimePicker1.Time:=DateTimePicker2.Time;
И посмотри, что получится.


← →
Alex Konshin ©   (2003-12-03 13:34) [8]

Могу предложить свой компонент DateComboBox, в котором можно указать сразу и дату, и время.
http://home.earthlink.net/~akonshin/index.htm
Правда, конкретно сейчас какие-то проблемы у провайдера, но, думаю, когда ты будешь читать уже все разрешится.



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.013 c
3-53395
phpist
2004-01-22 19:13
2004.02.17
Обновление BLOB-полей в ZeosDB


7-53782
mrAld
2003-11-30 21:29
2004.02.17
Delphi и MMX


7-53776
AlexV
2003-11-21 14:00
2004.02.17
Синхронизация с адресной книгой сотового телефона


8-53647
Coder1: TCoder;
2003-10-16 23:10
2004.02.17
Рисование без канвы


1-53458
Эдуард
2004-02-08 16:26
2004.02.17
Есть ли возможнось узнать есть ли у класса A public-свойство B?




   Наверх