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 BioSo 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