Datum,Uhrzeit => ARRAY



  • Guten Abend zusammen,

    Ich habe bereits einige Threads zu diesem Thema gefunden, jedoch hat mir keiner wirklich beim Einlesen geholfen.

    Vorgabe:
    Grundsätzlich habe einige int Werte mit jeweils einer Datum/uhrzeit angabe, bzw. damit ich von jedem Int wert nacher weiss, wann er genau eingelesen wurde.

    Ich habe mir das so gedacht, das ich in ein Array die Int werte aufnehme, und in ein anderes die Datum/zeit angaben. Das array der INt werte ist sicherlich kein Problem, jedoch krieg ich den typ des Datum/uhrzeit arrays nicht hin.

    Lösungsansatz:

    Ich habe eine Datum Ausgabe:

    z.B. über time.h mit:

    time_t rawtime;

    time ( &rawtime );

    oder über System mit:

    Console::WriteLine(DateTime::Now.ToString());

    Nun ist mein Problem das ich die Definition des Types vom Array nicht zustande kriege. Hat mir da jemand einen Tipp, wie ich da zu einer passablen Lösung komme?

    Vielen Dank im Voraus



  • Ich persönlich würde eine kleine Klasse schreiben, welche die int - und Zeitwerte zusammenfasst. Dann bist du sicher, dass die Werte immer gemeinsam existieren.

    struct entry
    {
        int    value;
        time_t time;
    
        // Konstruktor: Initialisiert richtige Zeit
        entry(int value);
    };
    

    Statt eines Arrays könntest du den Container std::vector nehmen, da ist die Verwaltung viel komfortabler. Zum Beispiel bist du nicht auf eine fixe Grösse beschränkt, kannst beliebig Elemente hinzufügen und löschen, musst dir nicht zusätzlich die Anzahl gespeicherter Elemente merken, etc. Hier gibts eine kleine Einführung in die STL (Standard Template Library), wovon die Containerklassen ein Bestandteil sind.

    std::vector<entry> entries;
    entries.push_back(entry(42));
    

    JustC++ schrieb:

    z.B. über time.h mit:

    Nimm doch den Header <ctime> statt <time.h> , der wäre nämlich der richtige in C++ (der andere ist aus C). 😉

    JustC++ schrieb:

    oder über System mit:

    Console::WriteLine(DateTime::Now.ToString());

    Das ist kein Standard-C++.



  • Ja aber da habe ich doch immernoch das Problem mit dem Typ des Datum/Zeit auszugs, oder ist da vector nicht so dran gebunden`?



  • justC++ schrieb:

    Ja aber da habe ich doch immernoch das Problem mit dem Typ des Datum/Zeit auszugs, oder ist da vector nicht so dran gebunden`?

    Mit der Datenstruktur (ob jetzt Array oder Vector) hat das eigentlich nicht viel zu tun.

    Aber worin besteht dein Problem genau? In C++ (bzw. schon in C) gibt es einige Funktionen, mit der du die Zeit bestimmen kannst. Schau dazu mal auf http://www.cplusplus.com/reference/clibrary/ctime/ nach.



  • Mein Problem besteht weniger darin die Zeit zu bestimmen, sondern diese in ein Array zu laden.

    Als Beispiel:

    time_t rawtime;

    time ( &rawtime );

    als was muss ich ein Array definieren das ich z.B. etwas in der art machen kann

    array[0] = time(&rawtime);

    welchem typ entspricht nun das array ?



  • justC++ schrieb:

    welchem typ entspricht nun das array ?

    time_t[size] ? 😕

    Ich verstehe dein Problem immer noch nicht. time_t ist ja gerade der Typ für Zeit. Und schau dir mal meinen Link an, dort stehen solche Dinge wie der Rückgabetyp von time() .



  • Okay dann begreif ich etwas nicht ganz, oder es ist schon zu spät 🙂

    Folgendes funktioniert ja nicht, da ctime ja der converter in string ist wenn ich das richtig verstehe. Folglich kann ich auch keine ctime(x) einem array das als time_t definiert ist, zuordnen. Oder seh ich das falsch?

    So klappt das ja nicht:

    time_t rawtime,av[5];

    time ( &rawtime );
    printf ( "The current local time is: %s", ctime (&rawtime) );

    av[5] = ctime(&rawtime);
    cout << av[5] << endl;



  • Es hat sich gelichtet! 🙂

    Vielen dank trotzdem 🙂


Anmelden zum Antworten