![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
InterBase и TTime [D5, IB5.x]
BAA © (2002-06-04 19:03:00)Здрявствуйте,уважаемые...
Вопросеро собсно в следующем...Как в InterBase реализован тип TTime...TDateTime упорно записывает только Date - часть...Кому-то покажется смешным, но нет возмодности разбираться...Почитал Interbasовские туториалы - что-то совсем мутно...
Digitman (2002-06-05 08:32:00) [1]uses IBHeader;
{ определения из IBHeader
TGDS_QUAD = record
gds_quad_high : ISC_LONG;
gds_quad_low : UISC_LONG;
end;
TISC_QUAD = TGDS_QUAD;
}
const
MSecsPerDay10 = MSecsPerDay * 10;
IBDateDelta = 15018;
function DelphiDateTimeToIBDateTime(d: TDateTime): TISC_QUAD;
var
Days: Integer;
begin
Days:= Trunc(d);
Result.gds_quad_high:= Days + IBDateDelta;
Result.gds_quad_low:= Trunc((d - Days) * MSecsPerDay10);
end;
function IBDateTimeToDelphiDateTime(ibd: TISC_QUAD): TDateTime;
begin
Result:= ibd.gds_quad_high - IBDateDelta + ibd.gds_quad_low / MSecsPerDay10;
end;
P.S.
А разбираться-таки нужно. Лень - не помощник программеру))
Alexandr (2002-06-05 07:07:00) [2]если у тебя нет возможности разбираться, то у меня нет желания помогать тебе