uhrzeiten subtrahieren



  • Hi

    Ich möchte eine Variable anlegen in der die Uhrzeit z.B: "16:10:44" gespeichert ist.
    In einer Listbox sind ebenfals verschiedene Uhrzeiten aufgelistet.
    Wenn man in der Listbox eine Uhrzeit auswählt soll diese Zeit von der
    Variable Uhrzeit abgezogen werden bis diese 00:00:00 ist.
    Leider habe ich keinen Plan wie man sowas macht 🙂

    Bitte um Hilfe
    DANKE



  • Sieh dir mal TDateTime an, damit lässt sich sowas vergleichsweise bequem erledigen.



  • Danke für den Tipp
    Bin fündig geworden.
    Habe allerdings noch ein kleines Problem beim Vergleich der Uhrzeiten.

    Und zwar funktioniert der erste Vergleich nicht. Wenn die Uhrzeit 00:00:00 ist kommt als ausgabe immer Sie haben noch Zeit übrig

    if (DateTime == (TDateTime)"00:00:00" )
    {
       Edit3->Text="Exakt";
    }
    if (DateTime > (TDateTime)"00:00:00" )
    {
       Edit3->Text="Sie haben noch Zeit übrig" ;
    }
    if (DateTime < (TDateTime)"00:00:00" )
    {
       Edit3->Text="Sie haben zuviel Zeit verbraucht";
    }
    

    Habe die Zeit 00:00:00 in eine TDateTime Variable geschrieben und dann Verglichen, ging nicht.
    Die Zeit mit StrToDate, ging auch nicht
    Und der Versuch es zu Casten geht auch nicht.

    Kann mir jemand helfen ??????????
    DANKE



  • Kann mir den Keiner helfen ??????????????????
    Ich komme echt nicht weiter
    BITTEEEEEEEEEEEEEEEEEEEEEEEEE



  • Ich weiß zwar noch nicht genau was du vorhast, aber vielleicht hilft dir

    void __fastcall DecodeTime(unsigned short* hour, unsigned short* min, unsigned short* sec, unsigned short* msec) const;
    

    <edit>
    oder, wenn du nur vergleichen willst,
    CompareDateTime
    DaySpan usw...
    </edit>



  • Danke für deine Antwort aber leider Hilft mir das nicht.
    CompareDateTime finde ich in der Hilfe gar nicht. Und DecodeTime hilft mir nicht.
    Nochmal zu meinem Problem.
    Ich habe 2 TDateTime - Variablen und die möchte ich auf Gleichheit prüfen.

    Danke



  • Warum hilft dir DecodeTime nicht?

    TDateTime ADateTime=Now();
    unsigned short AHour,AMin,ASec,AMSec; 
    DecodeTime(ADateTime, AHour, AMin, ASec, AMSec);
    

    Jetzt hast du alles in einzelnen Variablen und kannst gemütlich vergleichen, subtrahieren usw.



  • benutze bei TDateTime den Tag mit

    denn bei

    if (DateTime < (TDateTime)"00:00:00")
    

    erhältst du 23:59:40 wenn 20 Sekunden unterschied
    sind und 23:59:40 ist aber größer als 00:00:00
    daher muß den Tag mit einbeziehen oder komplettes Datum

    gruß promicha



  • @Fubar
    Danke hat funktioniert


Anmelden zum Antworten