Datum vergeleihen?



  • Hallo,

    ich bin recht neu was c++ angeht, die Grundlagen behersche ich schon, nun hab ich eine Frage. Kann mir einer sagen wie ich 2 Datums angaben vergleichen kann?

    Ich habe mir ein Programm geschrieben das eine Datei auslist dort drinn sind 2 Datumsangaben. das datum kann ich ja schon mit substring() herausholen und halt zusammensetzen, aber nur in nem string. Nun woltle ich gerne wissen ob es extra ein Datentyp dafür gibt, oder muss man sowas ganz anders angehen?

    Und mir ist auch wichtig das ich zb sagen kann

    if (Startdatum>=aktuellesDatum){
    //mache was
    }

    Das wäre wohl am einfachsten.

    Weis einer einen Rat?



  • Es gibt den Datentyp "struct tm" (aus der C Bibliothek geerbt) sowieso ein ganzes Sortiment an Zeitverarbeitungsfunktionen im Header <ctime> - schau dich mal dort um, ob du etwas geeignetes findest.



  • Eine Möglichkeite wäre, das Datum in das amerikanische Format zu wandeln und einer numerischen Variablen zuzuweisen (z.B. 19.04.2006 => 20060419).



  • Hallo! Erstmal danke für die Antworten,
    habe das mit dem struct schon versucht nur das hatte da bei mir trotz der Umwandlung immer merkwürdige Zeichen gemacht, habe im Internet noch mal weiter Recherchiert, und dabei rausgefunden das boost wohl eine Möglichkeit bietet dafür.

    Dort gibts auch ein Datentyp date.

    Habs folgendermaßen angewendet. Meint ihr das es irgendwelche Nachteile gibt bei diesem Verfahren?

    m_String wird vorher noch gesetzt logischerweise 🙂

    date today_ = day_clock::local_day();
    
    std::string formatted= m_String.substr(4,4)+"-"+ m_String.substr(2,2)+"-"+ m_String.substr(0,2);
    
    date other_(from_string(formatted));
    if (today_> other_){
       std::cout<< today_<< other_<< std::endl;
    }
    

Log in to reply