Zitat:
ch möchte das Dateidatum auch möglichst präzise als NICHT-Rational speichern (am besten als was ganzzahliges)
also hab ich das mal mit z.B: 100.000 mal genommen und wollte dann alle Reste abschneiden.
FullTIME := trunc(100000 * FileDateToDateTime(search.time));
Dummerweise wird FullTime dann aber negativ.
Teste das mal:
Delphi-Quellcode:
var
DateTime: TDateTime;
begin
DateTime := 0;
ShowMessage(DateTimeToStr(DateTime));
Ergebnis wird sein: 01.01.1900 minus eine Sekunde. Datum 0 ist also dieses Datum.
Was willst du also mit mal 100000 erreichen. Bedenke, Zeit 0 * 100000 ergibt 31.12.1899, ein Tag später mal 100000 ergibt das Datum 14.10.2173. Heute sind seit der Zeit 0 42111 Tage vergangen. Jede ganze Zahl steht für einen Tag. Also Now + 1 ergibt als Datum morgen. Nachkommastellen sind Uhrzeit. Wenn ich also Heute (42111) mal 10000 nehme, ergibt das 4211100000 Tage. Mal grob berechnet ergibt das 1900 + (4'211'100'000 / 356,25) etwa 11 Millionen Jahre in der Zukunft.