Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема со сложением значений дата и время [D7]


Dima2002 ©   (2003-12-02 20:13:00) 

Всем привет!
У меня такая проблема:
На форме есть два компонента 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 в любое время суток:))

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


Alex Konshin   (2003-12-03 13:34:00) [1]

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


Вася Пупкин   (2003-12-03 10:32:00) [2]

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

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


Dima2002   (2003-12-03 10:04:00) [3]

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


Dima2002   (2003-12-03 09:49:00) [4]

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


Dima2002   (2003-12-03 09:47:00) [5]

Спасибо за ответы.
Но дело в том, что у меня 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 - правильное значение:))


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

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


Вася Пупкин   (2003-12-02 20:55:00) [7]

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


Вася Пупкин   (2003-12-02 20:52:00) [8]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо