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

Вниз

Откуда берется секунда TDataTime и Variant ?????????   Найти похожие ветки 

 
MVova ©   (2002-07-10 13:38) [0]

Всем привет.
Есть такой код:

var
D : TDateTime;
DV : Variant;
begin
D := 37447.44574;
DV := D;
Label1.Caption := DateTimeToStr(d);
Label2.Caption := DV;
Label3.Caption := FloatToStr(D);
Label4.Caption := FloatToStr(DV);
end;


после выполнения
Label1.Caption = 10.07.2002 10:41:51
Label2.Caption = 10.07.2002 10:41:52

Откуда 1 сек.?


 
MVova ©   (2002-07-10 13:54) [1]

Это уже експеремент, реально наткнулся вот так:


function GetDateEditBuh(const DT,DID: WideString): TDateTime;
begin
adoGetDateEditBuh.ProcedureName := "DATEEDITBUH" + DT;
adoGetDateEditBuh.Parameters.Clear;
adoGetDateEditBuh.Parameters.CreateParameter("@RID",ftString,pdInput,16,DID);
adoGetDateEditBuh.Parameters.CreateParameter("@DateEditBuh",ftDateTime,pdOutput,0,0);
adoGetDateEditBuh.ExecProc;
Result := adoGetDateEditBuh.Parameters[1].Value;


та квот под отладчиком значкеие
adoGetDateEditBuh.Parameters[1].Value = 10.07.2002 10:41:52
так и должно быть
а DateTimeToStr(Result) = 10.07.2002 10:41:51

Как с этим боротся???


 
Кирилл Усов   (2002-07-10 13:55) [2]

Общеизвестно, что Variant - это очень медленный тип данных. Операции по его преобразованию занимают много времени(по сравнению с integer или string, например). Связано это с тем, что Variant - это есть vInteger, vString, vDateTime, vOLE(!!!) и др. вместе взятые.
Конечно, сомнительно, что это занимает столько времени, но проверить стоит.
Еще посмотри в точности. Если точность 1с, то вопрос исчерпан:) Хотя обычно точность до 1мс:( Смотря какой у тебя комп еще....


 
MVova ©   (2002-07-10 14:11) [3]

Кирилл Усов
Смотря какой у тебя комп еще
Cel 1200 512Mb Win2000Pro
Еще посмотри в точности. Если точность 1с, то вопрос исчерпан
Где и как смотреть?


 
Romkin ©   (2002-07-10 15:20) [4]

в варианте хранится extended, а дата - это double, вот при преобразовании и появляется ошибка округления
Delphi Help - Variant type conversions


 
Eugene Lachinov ©   (2002-07-10 15:27) [5]

Необходимо округлять или обрезать миллисекунды
Label1.Caption := FormatDateTime("HH:MM:SS:ZZZ", d);
10:41:51:936



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

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

Наверх




Память: 0.47 MB
Время: 0.011 c
14-70859
Goblinus
2002-06-23 23:42
2002.07.22
Описание формата RTF


14-70897
sanilo
2002-06-24 12:30
2002.07.22
Теща


1-70698
Коля
2002-07-11 08:10
2002.07.22
Scrollbar в DBGrid


14-70911
copyr25
2002-06-26 04:52
2002.07.22
Так скучно ночью! Я же знаю, многие


1-70812
iii
2002-07-10 16:03
2002.07.22
Цвет.