MinuteSpan



  • Hallo

    In Konstruktor des Forms

    DateTimePicker->DateTime = Date();
    

    bis bald
    akari



  • Hi,

    dann müsste das mit dem MinuteSpan so gehen? :

    TDateTime -> DateTime = MinuteSpan(x,y);
    

    falls ja, bekomm ich dennoch den Fehler:
    "Aufruf der undef. Funktion 'MinuteSpan'"

    🙄

    danke



  • was passiert wenn du MinuteSpan markierst und F1 drückst?



  • hab ich schon geschaut:
    folgendes:

    *Die Funktion MinuteSpan gibt die Anzahl der Minuten (einschließlich der Minutenbruchteile) zurück, die zwischen den beiden angegebenen TDateTime-Werten verstrichen sind.

    Unit

    DateUtils

    Kategorie

    Datum/Zeit

    extern PACKAGE double __fastcall MinuteSpan(const System::TDateTime ANow, const System::TDateTime AThen);*



  • ok, na schonmal etwas

    steht in deinem Quelltext irgendwo

    #include <DateUtils.hpp>
    

    ?



  • Hi,

    ja, nun steht es drin 😉
    Hat nun auch schonmal "etwas" funktioniert...
    ich kopier dir nun einfach mal das rein, was ich machen will.
    Wie gesagt, ich habe einen Start und Stop button und zwei ListBoxen, in
    welche die jeweilige Zeit reingeschrieben wird.
    Wenn ich nun Stop drücke soll nicht nur die Zeit in die Listbox übertragen werden,
    sondern auch die Zeit aus "Start-Listbox" ausgelesen und per MinuteSpan die Differenz der beiden Zeiten in eine neue (dritte) ListBox geschrieben werden.

    void __fastcall TBasis::Stop_ButtonClick(TObject *Sender)
    {
            TDateTime DateTime = Time(); 
            AnsiString str = TimeToStr(DateTime);
            char* ch = new char[str.Length()+1];
            strcpy(ch, str.c_str());
            Stop_Liste -> AddItem(ch, Stop_Liste);  // Schreibt es in die Stop_Liste
            delete [] ch;
    
            int l1=0;
            int l2=0;
            AnsiString las1;
            AnsiString las2;
            l1 = Start_Liste->Items->Count;
            l2 = Stop_Liste->Items->Count;
            las1 = Start_Liste->Items->Strings[l1-1];
            las2 = Stop_Liste->Items->Strings[l2-1];
            TDateTime -> DateTime = StrToTime(las1);
            TDateTime -> DateTime = StrToTime(las2);
    
     /*Hier komme ich nicht weiter -> wie kopiere ich die Differenz in ListBox3 */
    
            TDateTime -> DateTime = MinuteSpan(las1, las2);
            ListBox3 -> AddItem(????, ListBox3);
    

    so sieht es bei mir aus... ok nun bitte nicht so laut lachen 😉
    bin halt noch ein Neuling 🙂



  • warum so umständlich?

    Stop_Liste->Items->Add(TimeToStr(Time())); 
    ...
    ListBox3 -> Items->Add(FloatToStr(MinuteSpan(las1, las2)));
    

    MinuteSpan liefert übrigends KEIN DateTime zurück



  • Hey,

    hab es vorhin noch getestet.
    da kommen werte raus, die ich nich versteh ..
    z.b. 3 Sekunden = 0,374657346753 oder so
    und bei 5 Sekunden = 0,6234234 ....
    da stimmt doch was nicht 🙂

    kannst mir sagen , warum bei ListBox3 dieser FloatToStr
    nötig ist?

    Kann ich diesen Wert nicht in ein DateTime zurückgeben lassen?

    gruß



  • ich zitiere dich mal selbst:

    smiLLe schrieb:

    hab ich schon geschaut:
    folgendes:

    *Die Funktion MinuteSpan gibt die Anzahl der Minuten (einschließlich der Minutenbruchteile) zurück, die zwischen den beiden angegebenen TDateTime-Werten verstrichen sind.

    Unit

    DateUtils

    Kategorie

    Datum/Zeit

    extern PACKAGE double __fastcall MinuteSpan(const System::TDateTime ANow, const System::TDateTime AThen);*

    fällt dir was auf?

    wenn du die Sekunden willst, nimm SecondsSpan oder SecondBetween

    wenn du allerdings die Zeit zwischen zwei Werten im Zeitformat anzeigen willst, brauchst du nur folgendes tun:

    ListBox3->Items->Add(TimeToStr(StrToTime(las1) - StrToTime(las2)));
    


  • Morgen,

    danke 🙂
    genau das was ich haben wollte !
    bin eig. davon ausgegeangen, dass MinuteSpan die Werte als DateTime ausgibt.

    Aber las1-las2 is natürlich noch viel besser 😉

    also,

    vielen Dank !


Anmelden zum Antworten