begin res := trunc((value - StrToDateTime('01-01-1970 00:00:00')) * 24 * 60 * 60); if GetTimeZoneInformation(tz) = TIME_ZONE_ID_DAYLIGHT then begin res := res + (tz.DaylightBias + tz.Bias) * 60 end else begin res := res + (tz.StandardBias + tz.Bias) * 60; end; D2U := res; end;
function time(t : pointer) : integer; cdecl; external 'msvcrt.dll';
function D2U(Value: TDateTime): LongWord;
var tz : TTimeZoneInformation; res : LongWord;
begin res := trunc((value - StrToDateTime('01-01-1970 00:00:00')) * 24 * 60 * 60); if GetTimeZoneInformation(tz) = TIME_ZONE_ID_DAYLIGHT then begin res := res + (tz.DaylightBias + tz.Bias) * 60 end else begin res := res + (tz.StandardBias + tz.Bias) * 60; end; D2U := res; end;
var t : TDateTime;
begin writeln(D2U(now)); writeln(time(nil)); readln; end.
Og for en god ordens skyld: - koden antager at den testede data har samme sommer/vinter tids status som nu - hvis den betingelse skal opfyldes skal man lave et mere avanceret test - der er *umuligt* at lave et perfekt test da man i den time hvor uret stilles tilbage vil have *en* lokal tid som svarer til *to* forskellike unix tid
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.