Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Ghostwalker,
7. Jun 2018
@Samso
Jup..hast recht.
Damit funktionieren jetzt beide Varianten (Unix->TDateTime und TDateTime->Unix).
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Ghostwalker,
6. Jun 2018
Vielen Dank für eure Mühen :)
Samso's Variante funktioniert perfekt :)
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Ghostwalker,
5. Jun 2018
@TiGu
Ob der verzicht nun sinnvoll ist oder nicht tut nix zur Frage und dem Problem :)
Die Lösung, die KodeZwerg gepostet hat, ist auch die, die an den meisten Stellen im Internet rumgeistert (vgl. CodeLib, SwissDelphiCenter.ch u.v.m), aber genau das Problem mit Daten vor 1899 hat.
Wie steht es den in den neueren Versionen drinn ?
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Ghostwalker,
5. Jun 2018
Naja...DateTimeToUnix tut ja so:
var
Zeit : int64;
datum: int64;
begin
zeit := Trunc((Abs(Frac(value))*cSecPerDay)+0.5); //Zeitanteil in Sekunden
datum := trunc(int(value)*cSecPerDay); //Anzahl der Tage mit Bezug Delphi-Epoche in Sekunden
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Ghostwalker,
5. Jun 2018
@KodeZwerg
Da ich die Starter verwende hab ich keine .pas zu den Delphiegenen Units :)
Lustig ist nur, das die von dir gepostet variante bei oben genannten Datum das gleiche fehlerhafte
Ergebnis liefert.
Die orginal Funktion dagegen haut hin.
So wie es aussieht hackt es bei Daten vor dem 30.12.1899 00:00:00 (also der "Delphi-Epoche")
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Ghostwalker,
5. Jun 2018
@samso
Nah drann.
Bei den (Test)-Daten hauts nicht hin:
So, 23.08.1733 18:33:44
-60759,7734259259
-7458672376
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Ghostwalker,
5. Jun 2018
Moinmoin,
im Rahmen eines Projektes brauch ich die Umrechnung von TDatetime-Werten nach UnixTimeStamp und zurück. Das ganze aber manuell ohne Dateutils. Da die Funktionen aus der Codelib Hier, nicht so wirklich funktionieren (erstens wird von der Deutschen Zeitzone ausgegangen, 2 wird der Zeitteil nicht wirklich korrekt berechnet), hab ich mich dazu entschlossen, das ganze selbst um zusetzen....