Wie rechne ich Zeiten um und verändere diese?
-
Hi,
Ich suche eine Lösung zum ändern der ausgabe der Systemzeit, so dass sie z.B. die Zeit von England oder Amerika (Zeitzone bestimmbar) ausgeben kann.
Die aktuelle Zeit hole ich mit dem Befehl "Time()".
wie kann ich nun die Ausgabe abändern, dass am Ende z.B. statt 12:00:00 dann
11:00:00 dasteht?
-
raptorxp,
raptorxp schrieb:
...wie kann ich nun die Ausgabe abändern, dass am Ende z.B. statt 12:00:00 dann 11:00:00 dasteht?
Time() liefert Dir einen speziellen TDateTime-Wert. Zu diesem kannst Du andere TDateTime-Werte hinzu addieren. Benutze einen der TDateTime-Konstruktoren, um die gewünschte Zeit-Differenz zu erstellen und addiere diese dazu bzw. subtrahiere diese von dem Ausgangswert.
-
Hallo dschensky
void __fastcall TForm1::Button1Click(TObject *Sender) { TDateTime SysZeit, difEngland, nurZeit; double dZeit; SysZeit = Time(); // Rechnerzeit ohne Datum im Format TDateTime SysZeit = Now(); // Rechnerzeit mit Datum im Format TDateTime // Eine Stunde im Format TDateTime difEngland = EncodeTime(1, 0, 0, 0); // gewünschte Zeiten duch Subtraktion oder Addition ausrechnen // und 24:00:00 beachten // TDateTime ist ein double Wert. vor dem Komma Tage nach dem Komma // Zeit dZeit = SysZeit; SysZeit = dZeit; // nur die Zeit aus dem TDateTimeFormat verenden nurZeit = SysZeit.CurrentTime(); }Man kann auch aus dem System die UTC lesen diese umwandeln in TDateTime und einfach weiterrechnen. SystemTimeToDateTime konvertiert einen _SYSTEMTIME-Wert in ein Objekt des Typs TDateTime.
Viel Erfolg
Evi48
-
{ TDateTime SysZeit, difEngland; SysZeit = Time(); difEngland = EncodeTime(1, 0, 0, 0); edtUK->Text=SysZeit-difEngland; }Das hat mir schon gereicht, vielen dank
