Datum sortieren



  • Hallo

    ich hab mal wieder eine Frage.Wie würdet ihr mir empfehlen mehrer Datums zu sortieren?
    Zur Zeit mache ich es so das ich diese vielen Datums aus einem vector bekommen. Dann suche ich nach den Punkten in den einzelenen Strings, lösche diese raus und wandle den neuen string in ein int um. Dann habe ich zwar ein int welches ich vergleichen kann, jedoch kommen immernoch falsche sortiereungen raus, wenn zum beispiel der 21.10.2007 und der 23.10.2006 umgewandelt werden kommt einmal der
    21102007 und
    23102006 raus.
    Nach menschlicher Logik ist natürlich der 21.10.2007 größer als der 23.10.2006, aber beim sortieren ins der letzte int natürlich größer als der erste. Daher wird das Ergebnis verfälscht. Jetzt frage ich euch um Rat wie ihr das sortieren würdet das es ein richtiges Eregbnis ergibt?



  • Ich kenn die Klasse nicht aber bin mir sicher es gibt sie und kann folgendes wie beschrieben.

    (Neutrum: singular: Datum - plural: Data)
    kannst du nicht die Data im Vector als Datum-Objekte lassen bzw. diese in solche umformen?
    Dann könntest du diese sicherlich per toInt()/value()/? in long-Typen umwandeln. Dann müsstest du Zahlen sortieren, die die Anzahl der Sekunden nach 1.Jan.1970 wiedergeben sortieren.

    wie verhält siche deine Methode bei:

    1.1.2007
    1.12.007

    war beides gleichzeitig?



  • naja nach meiner methode würden die punkte rausgeschnitten, also

    1.1.2007 = 112007
    1.12.2007 = 1122007

    da is natürlich das erste kleiner als das zweite...

    aber mal auf deine möglichkeit zu kommen,ich habe diese data als strings vorliegen, wie kann ich die jetzt in ein datumbjekt umwandeln und dann die zeit vom 1970 bis jetzt berechnen?? hoffe kannst mir helfen



  • erstens guck dir nochmal die beispiel-data an! eines ist nicht 2007!

    ich guck mal in die docs..

    gucke hier http://www.inf.hs-anhalt.de/~Breitschuh/html/Beispiele_C++/Prog2/Prog2.htm



  • Ist doch logisch, daß du die Datumswerte in die Form YYYYMMDD bringen mußt, dann kannst du sie auch vernünftig vergleichen (egal ob als String oder als Zahl).



  • jo stimmt is logisch und wie würdest du sie aus dem tt.mm.yyyy in das yyyymmtt format bringen? hoffe ihr könnt mir ein bissel helfen


Anmelden zum Antworten