mktime aus tm struct immer noch tm struct?



  • Hallo,

    ich versuche mit time_t zu rechnen...
    Habe es jetzt schon soweit geschaft tm struct zu erzeugen und wieder auszugeben.

    Jetzt soll der nächste Schritt sein, die difftime Funktion zu nutzen um Zeiten gegen zu rechnen.

    Der tm struct...

    time_t rawtime1;
     struct tm * zeit1;
     time ( &rawtime1 );
     zeit1 = localtime ( &rawtime1 );
      zeit1->tm_sec  = StrToInt(Edit2->Text);   // Sekunden nach voller Minute [0, 60]
      zeit1->tm_min  = StrToInt(Edit3->Text);   // Minuten nach voller Stunde [0, 59]
      zeit1->tm_hour = StrToInt(Edit1->Text);  // Stunden seit Mitternacht [0, 23]
      zeit1->tm_mday = StrToInt(Edit4->Text);  // Tag im Monat [1, 31]
      zeit1->tm_mon  = StrToInt(Edit5->Text) -1;  // Monate seit Januar [0, 11]
      zeit1->tm_year = StrToInt(Edit6->Text) - 1900; // Jahre seit 1900
      zeit1->tm_isdst= -1;  // nicht bekannt, ob Sommerzeit
    

    hier umwandlung in time_t zeit...

    mktime (zeit1);
    

    Dann soll die Rechnung kommen...

    double dif;
     dif = difftime (zeit1,zeit);
     Edit22->Text = dif;
    

    Doch leider bringt er mir den Fehler

    Konvertierung von 'tm * *' nach 'long' nicht möglich
    

    Ich verstehe es nicht "mktime" soll doch aus dem tm struct wieder ein Rechenbaren time_t typ machen 😕

    Gehe ich das falsch an?
    Danke für jegliche hilfe

    wünsche was



  • Hallo

    Warum benutzt du nicht TDateTime? Da würde das viel einfacher gehen.
    Wenn du bei time_t bleiben willst, dann sollte diese Frage ins C-Forum verschoben werden.

    bis bald
    akari



  • hawkdz schrieb:

    hier umwandlung in time_t zeit...

    mktime (zeit1);
    

    Ist dir klar, dass das Ergebnis dieser Umwandlung der Rückgabewert von mktime ist? Dieser Aufruf ändert nicht auf magische Weise zeit1 in ein time_t.



  • die Gründe dafür sind der struct für SYSTEMTIME
    und ich den Gedanken habe mit time_t einfacher in Sekunden zu rechnen...

    Hab da nicht viel gefunden was TDateTime in einfacher form in den SYSTEMTIME struct wandelt



  • @MFK

    ja war ja die Frage, also missverstehe ich die aussage

    function
    
    mktime
    <ctime>
    
    time_t mktime ( struct tm * timeptr );
    
    Convert tm structure to time_t
    

    wäre ja mal wieder zu einfach ^^



  • jo mit TDateTime geht das echt mal viel einfacher, Danke!


Anmelden zum Antworten