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

сравнение двух TDateTime ???   Найти похожие ветки 

← →
Цукор5   (2007-10-26 00:01) [0]


private
   hTime:DWord;
...
procedure TForm1.Button1Click(Sender: TObject);
begin
 hTime:=GetTickCount;
 Timer1.Enabled:=True; // Timer1.Interval:=20;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
 var Q:DWord;
     D,hDate:TDateTime;
begin
 Q:=GetTickCount-hTime;
 D:= Q / (1000 * 60 * 60 *24) ;
 Label1.Caption:=DateToStr(D)+"__"+TimeToStr(D);
 //
 hDate:=EncodeTime(0,0,5,0);
 Label2.Caption:=DateToStr(hDate)+"__"+TimeToStr(hDate);
 if hDate=D then Windows.Beep(800,200);
end;


по непонятным причинам на одном ПК "событие" происходит, на втором нет.
Тоже самое если условие hDate-D=0.

И только если условие hDate-D<0 , тогда срабатывает на обеих.
В чем причина ???


← →
Сусл ©   (2007-10-26 00:04) [1]

причина в том, что нельзя стравнивать числа с плавающей точкой равенством. это их особенности.

если с точностью до даты, то trunc сделай перед сравнением или сравнивай
abs(hDate-D) < 0.0001


← →
Цукор5   (2007-10-26 00:14) [2]

2 Сусл ©
>или сравнивай abs(hDate-D) < 0.0001

Что-то этот вариант не работает.


← →
Цукор5   (2007-10-26 00:25) [3]

2 Сусл ©   (26.10.07 00:04) [1]

>abs(hDate-D) < 0.0001

а нужно abs(hDate-D) < 0.00001 !
Количеством нулей ошибся ;)


← →
Юрий Зотов ©   (2007-10-26 00:37) [4]

Боже...


← →
Сусл ©   (2007-10-26 00:38) [5]

почитай на www.delphikingdom.ru есть статья про вещественные числа
автор Антон Григорьев. По идее каждому эту статью надо прочесть.

точную ссылку не дам, сам ищи...


← →
Германн ©   (2007-10-26 01:01) [6]


> Сусл ©   (26.10.07 00:38) [5]

Поздравляю, Дима! Ты вспомнил таки.
:-)


← →
Сусл ©   (2007-10-26 12:46) [7]


>  [6] Германн ©   (26.10.07 01:01)
>
> > Сусл ©   (26.10.07 00:38) [5]
>
> Поздравляю, Дима! Ты вспомнил таки.
> :-)

тебе скушно?



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

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



Память: 0.46 MB
Время: 0.015 c
2-1193394735
kaktus
2007-10-26 14:32
2007.11.18
Уважаемые, дайте совет.


15-1192546038
oldman
2007-10-16 18:47
2007.11.18
Есть такая страна Мьянма. У них война, а они Интернет чинят... :)


4-1178231458
Германн
2007-05-04 02:30
2007.11.18
GetComputerNameEx


3-1183620291
ambhtr
2007-07-05 11:24
2007.11.18
Помогите составить запрос


2-1193657824
seoidBar
2007-10-29 14:37
2007.11.18
Кто разбирается в LCD мониторах???




   Наверх