Tabelle nach Datum sortieren



  • Hallo zusammen und ein frohes Fest...

    ich sitze gerade an einem Problem und bekomme es irgendwie nicht hin.

    ich muss eine Tabelle nachdem Datum sortieren, das dumme an der Tabelle ist nur, das Datumswerte z.B. 08.12.2003 mehrfach vorkommen können und das ist auch gleichzeitig die Stelle, an der ich hängen bleibe.

    Die Tabelle ist eine csv-Datei, die ich in einen geschachtelten Vector, d.h. zwei hintereinander folgende Voctoren einlesen muss.
    Der Aufbau ist ungefähr so:

    Datum Uhrzeit Thema
    08.12.2003 14:00 Sport
    09.12.2003 10:00 Deutsch
    07.12.2003 13:00 Mathe
    07.12.2003 12:00 Englich
    08.12.2003 10:00 Bio

    So nun war mein Vorgehen, das ich die Strings aus dem Vector in ein Datumsformat umgewandelt habe. Danach nehme ich einen neuen Vector und möchte den eingelesen Vector dort sortiert ablegen. Dazu vergleiche ich eine Zeile aus dem eingelesen Vector mit dem von mir erstellten Vector mit compareTo, um zu schaun, ob der neue Wert größer ist oder kleine. Dann entscheide ich wie ich diesen in meinen Vector einbinde. Nur funktioniert das irgendwie nicht. Aber bevor ich das hier noch lange beschreibe den Quellcode von mir dafür:

    for(int i = 0; i<kd.getGrößeAußen();i++){
    if(!vec.isEmpty()){
    try{
    dateNew = StringToDate((String)((Vector)vecKd.get(i)).get(4));
    }catch(ParseException e){
    out.println("fehler");
    }
    for(int j = 0; j<vec.size(); j++){
    try{
    dateAkt = StringToDate((String)((Vector)vec.get(0)).get(4));
    }catch(ParseException e){
    out.println("fehler2");
    }

    if(dateNew.compareTo(dateAkt)>0){ // neues Datum größer als altes
    out.println(dateNew + " " + dateAkt + "<br>");
    for(int k = 0; k < vec.size(); k++){
    try{
    date = StringToDate((String)((Vector)vec.get(k)).get(4));
    }catch(ParseException e){
    out.println("fehler3");
    }
    if(dateNew.compareTo(date)>0){
    pos = k;
    break;
    }
    }
    vec.add(pos+1, kd.getVectorInnen(i));
    }
    else{
    if(dateNew.compareTo(dateAkt)==0){
    for(int k = 0; k < vec.size(); k++){
    try{
    date = StringToDate((String)((Vector)vec.get(k)).get(4));
    }catch(ParseException e){
    out.println("fehler3");
    }
    if(dateNew.compareTo(date)==0){
    pos = k;
    break;
    }
    }
    vec.add(pos, kd.getVectorInnen(i));
    }
    else{
    if(dateNew.compareTo(dateAkt)<0){
    for(int k = 0; k < vec.size(); k++){
    try{
    date = StringToDate((String)((Vector)vec.get(k)).get(4));
    }catch(ParseException e){
    out.println("fehler3");
    }
    if(dateNew.compareTo(date)<0){
    pos = k;
    break;
    }
    }
    vec.add(pos, kd.getVectorInnen(i));
    }
    }
    }
    }
    }
    else
    vec.add(kd.getVectorInnen(0));
    }

    Vielen Danke für die Hilfe


Anmelden zum Antworten