Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.07.20;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.044 c
2-1213873852
Ciberrus
2008-06-19 15:10
2008.07.20
DBF и Delphi изображения


4-1192524467
skywriter
2007-10-16 12:47
2008.07.20
Более одной камера через Video For Windows API


2-1213676469
affonya
2008-06-17 08:21
2008.07.20
Процессы в фоне


2-1213708430
snake-as
2008-06-17 17:13
2008.07.20
Печать DBGrid


15-1212545940
Slider007
2008-06-04 06:19
2008.07.20
С днём рождения ! 4 июня 2008 среда





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский