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

Вниз

Преобразование переменных   Найти похожие ветки 

 
webpauk ©   (2008-06-19 12:42) [0]

как из 2 переменных типа TDate, TTime получить переменную типа TDateTime?


 
{RASkov} ©   (2008-06-19 12:44) [1]

> [0] webpauk ©   (19.06.08 12:42)

+ (сложить их) :)


 
Правильный-Вася   (2008-06-19 12:46) [2]

если внимательно почитать справку, то можно убедиться, что это один и тот же тип данных


 
webpauk ©   (2008-06-19 12:47) [3]


> {RASkov} ©   (19.06.08 12:44) [1]

предположим:

var
 fD: Tdate;
 fT: Ttime;
 fDT: TdateTime;
begin
 fD:=Now;
 fT:=Now;


корректно?
а теперь сложи...


 
{RASkov} ©   (2008-06-19 12:48) [4]

> если внимательно почитать справку

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


> [3] webpauk ©   (19.06.08 12:47)

var D: TDate; T: TTime; DT: TDateTime;
begin
 D:=Date;
 T:=Time;
 DT:=D+T;
 ShowMessage(DateTimeToStr(DT));
end;


 
webpauk ©   (2008-06-19 12:50) [5]


> {RASkov} ©   (19.06.08 12:48) [4]

папрашу....
код всё-таки такой:
fD:=Now;
fT:=Now;


 
{RASkov} ©   (2008-06-19 12:50) [6]

> [3] webpauk ©   (19.06.08 12:47)
> корректно?
> а теперь сложи...

Нет, у тебя в данном случае не корректно. Так как ты не время с датой складываешь, а две даты.
Вникни в свой вопрос и в то что ты написал....


 
webpauk ©   (2008-06-19 12:51) [7]

fDT:=TDate(fD)+TTime(fT);
вот так вот!


 
{RASkov} ©   (2008-06-19 12:51) [8]

> [5] webpauk ©   (19.06.08 12:50)
> папрашу....
> код всё-таки такой:

Тогда две(все) переменные в твоем случае TDateTime....


 
webpauk ©   (2008-06-19 12:52) [9]


> Нет, у тебя в данном случае не корректно. Так как ты не
> время с датой складываешь, а две даты.

почему не корректно...
раз фурычит, значит не ошибка


 
webpauk ©   (2008-06-19 12:53) [10]


> fDT:=TDate(fD)+TTime(fT);

блин, не прохавало...


 
webpauk ©   (2008-06-19 12:55) [11]

fDT:=DateOf(fD)+TimeOf(fT);
а так вроде ничё!


 
{RASkov} ©   (2008-06-19 12:56) [12]

> [7] webpauk ©   (19.06.08 12:51)
> fDT:=TDate(fD)+TTime(fT);
> вот так вот!

Можно и так:
var D, T, DT: TDateTime;
begin
 D:=Now;
 T:=Now;
 DT:=Trunc(D)+Frac(T);
 ShowMessage(DateTimeToStr(DT));
end;


> [9] webpauk ©   (19.06.08 12:52)
> почему не корректно...
> раз фурычит, значит не ошибка

Это ты так думаешь...) А другой(или ты потом) точно сломает моск в твоем коде и тогда уже будут реальные ошибки.... заметь из-за тебя, а не он(ты потом) виноват...
:о)


 
{RASkov} ©   (2008-06-19 12:57) [13]

> [10] webpauk ©   (19.06.08 12:53)
> блин, не прохавало...

Пора тебя схавать...)


 
{RASkov} ©   (2008-06-19 12:59) [14]

> > [7] webpauk ©   (19.06.08 12:51)
> > fDT:=TDate(fD)+TTime(fT);
> > вот так вот!
>
> Можно и так:
> var D, T, DT: TDateTime;
..... и т.д.

Т.е. не можно, а даже нужно! :)


 
Anatoly Podgoretsky ©   (2008-06-19 14:14) [15]

Что хочешь сделать, получить.
Сложение корректно, а вот результат не обязательно корректен.
Что должно получиться при сложение 19.06.2008 hh.mm.ss с 19.06.2008 hh.mm.ss
И зачем ты складываешь две Now, Надешсься то получится завтра?


 
Palladin ©   (2008-06-19 14:37) [16]


> webpauk ©   (19.06.08 12:55) [11]


Now возвращает и дату и время
Date возвращает только дату, со пустым временем
Time возвращает только время, с пустой датой

какого ты складываешь Now с Now, что ты пытаешься получить?


 
Loginov Dmitry ©   (2008-06-19 18:57) [17]

> fD:=Now;
> fT:=Now;
> fDT:=DateOf(fD)+TimeOf(fT);


надеешься на авось?
А что будет, если
fD:=Now; - в момент 19-06-2008 23:59:59.999
fT:=Now; - в момент 20-06-2008 00:00:00.000

Корректнее:
fD:=Now;
fT:=fD;
fDT:=DateOf(fD)+TimeOf(fT);


 
Игорь Шевченко ©   (2008-06-19 19:56) [18]

нафига складывать даты ?


 
korneley ©   (2008-06-19 22:20) [19]


> Игорь Шевченко ©   (19.06.08 19:56) [18]
> нафига складывать даты ?

Чтобы потом поспорить, как методом вычитания/деления получить кол-во месяцев и лет :)))


 
korneley ©   (2008-06-19 22:33) [20]

Непонятно, чего рубиться, если ответ, согласно поставленному вопросу, был выдан в посте [1]? Животомеры тестируем? :)))


 
Anatoly Podgoretsky ©   (2008-06-19 23:13) [21]

> korneley  (19.06.2008 22:33:20)  [20]

Я же написал зачем, сегодня + сегодня = завтра


 
korneley ©   (2008-06-20 00:31) [22]


> Anatoly Podgoretsky ©   (19.06.08 23:13) [21]
> > korneley  (19.06.2008 22:33:20)  [20]Я же написал зачем,
>  сегодня + сегодня = завтра

С точки зрения и математики, и типа (не путать с русским неопределённым артиклем - "типа") TDateTime:  какое завтра? Там глубокое будущее обрисовалось :))


 
Anatoly Podgoretsky ©   (2008-06-20 10:05) [23]

> korneley  (20.06.2008 0:31:22)  [22]

День сегодня плюс день сегодня равно день завтра, день за день.


 
korneley ©   (2008-06-20 10:58) [24]


> Anatoly Podgoretsky ©   (20.06.08 10:05) [23]

Ну, тогда можно и так: "Сколько (к) сегодня не добавляй, сегодня и останется" :)



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

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

Наверх




Память: 0.52 MB
Время: 0.02 c
15-1212677917
Slider007
2008-06-05 18:58
2008.07.20
С днем рождения ! 5 июня 2008 четверг


6-1189537494
Sharp
2007-09-11 23:04
2008.07.20
помогите с куками


2-1213613675
EgorovAlex
2008-06-16 14:54
2008.07.20
Запись в файл и чтение из файла записи: есть запись:


2-1213825037
light-blr
2008-06-19 01:37
2008.07.20
Как заставить программу ждать, пока выполнится вызванная другая?


2-1213704407
tey
2008-06-17 16:06
2008.07.20
работа со строкой