Zeit zwischen zwei TDatetime errechnen
-
Ich möchte einen Wecker mit Statusleiste realisieren.
Ich verwende ein DateTimePicker zur Auswahl des Weckdatums und Weckzeit.TDateTime wecken = DateTimePicker1->DateTime; //Problem 1 Label1->Caption = DateTimeToStr(Now() - wecken); //Problem 2 if (DateTimePicker1->DateTime==Now()) { Label1->Caption = "AUFWACHEN!!!"; }Problem 1: Label1 erhält die Stunden und Minuten die zwischen der jetzigen Uhrzeit und der Weckzeit liegen. Das Datum wird aber nicht berücksichtigt (kommt irgent nen komischer Datumswert raus). Wie kann man das am einfachsten realisieren? Gibt es dazu eine Funktion??
Problem 2: Das Programm schafft es nicht bei gleichem Datum und gleicher Uhrzeit in die If-Anweisung auszuführen. Der will da einfach nicht rein.
Wahrscheinlich habe ich mir das zu einfach vorgestellt. Aber es muss doch irgent etwas geben der die Tage, die zwischen zwei TDateTime liegen, errechnen bzw vergleichen kann. Vieleicht hat einer auch einen ganz anderen Ansatz wie er das umsetzen würde.
Um so einfacher um so besser.Bin für jede Hilfe dankbar.
-
1.) Now()-wecken liefert die Zeitdifferenz in Tagen, mit Stunden etc. als Nachkommastellen.
DateTimeToStr wandelt einen Gleitkommawert in ein Datum um. Da die Differenz aber nur wenige oder 0 Tage beträgt, erhältst du den "Ursprung" der Zeitachse als Datum. Deshalb mußt du die Tage getrennt von der Zeit auswerten.2.) Prüfe die Zeiten nicht auf Gleichheit sondern, ob die aktuelle Zeit größer als die eingestellte ist. Es ist extrem unwahrscheinlich, genau den Zeitpunkt zu erwischen, an dem beide Zeiten auf Tausendsteltsekunden gleich sind.
-
Hallo,
Wenndes hast könnteste mir den Quellcode geben? Brauche nämlich auch so etwas aber verstehe nicht so genau wie es funktioniert.
MFG,
Tomo