Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Systemzeit als integer auslesen (https://www.delphipraxis.net/153248-systemzeit-als-integer-auslesen.html)

XXcD 26. Jul 2010 15:38

Systemzeit als integer auslesen
 
Hallo,

ich bin auf der Suche nach einer Möglichkeit die Systemzeit mit Datum als Integer auszulesen.
Soweit ich weiß speicher ein Computer die Uhrzeit ja auch als langen Integer aber wie komme ich da dran?

MfG
XXcD

DeddyH 26. Jul 2010 15:50

AW: Systemzeit als integer auslesen
 
Meinst Du evtl. MSDN-Library durchsuchenGetSystemTime?

himitsu 26. Jul 2010 15:54

AW: Systemzeit als integer auslesen
 
Such dir einfach eine Funktion als TimeToUnixTime oder rechne selber irgendwas.
DOS-DateTime wäre auch eine Möglichkeit, wofür Delphi, bzw. die WinAPI eine Umwandlungsfunktion bietet.

z.B.
Delphi-Quellcode:
i := Round(Now * 24*60*60);
paßt aktuell noch in einen LongWord rein und für ein Datum ab dem Jahr 2000
Delphi-Quellcode:
Round((Now - 36526) * 24*60*60)
paßt dieses auch noch für einige Jährchen in einen Integer.
(36526 = 01.01.2000 00:00)

Es kommt ja auch darauf an, in welchem Format du es nun wirklich haben willst.
Denn es gibt mehrere Möglichkeiten/Formate, um dieses als "Integer" darzustellen.

[add]
GetSystemTime sind 4 Integer

XXcD 26. Jul 2010 15:58

AW: Systemzeit als integer auslesen
 
Ich versuche die Uhrzeit mit Datum in die Registry zu schreiben.

Und zwar als Integer: sieht ungefähr so aus 1254856663321

Ich denke mal GetSystemTime wird mir so eine Zahl ausgeben, aber wie bekomme ich die als Integer???

himitsu 26. Jul 2010 16:06

AW: Systemzeit als integer auslesen
 
Zitat:

Zitat von XXcD (Beitrag 1037693)
Ich denke mal GetSystemTime wird mir so eine Zahl ausgeben, aber wie bekomme ich die als Integer???

garnicht, da (wie schon gesagt) GetSystemTime 4 Integer, bzw. 8 WORD (für jedes Feld "Tag,Monat,Jahr,Stunde,Minute,Sekunde") belegt.

die UnixTime wäre eine Möglichkeit, allerdings nicht für Integer, denn dafür ist der Wert (Sekunden seit 1970) schon zu groß.
In einen LongWord/DWORD paßt es aber noch, wobei die Registry auch eigentlich das unsigned DWORD und nicht das signed Integer kennt. :)


Ansonsten hab ich da oben auch noch Rechenbeispiele angegeben.

Andreas L. 26. Jul 2010 19:08

AW: Systemzeit als integer auslesen
 
Delphi-Quellcode:
uses ..., DateUtils;

...


function GetIntDate:Int64;
begin
  Result := DateTimeToUnix(Now);
end;
Den Wert kannst du dann mit TRegistry.WriteInteger in die Registry schreiben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:53 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz