# Zeiten vergleichen



## Oli (13. Dez 2007)

Hallo, 

ich bin jetzt fast am Durchdrehen... Entweder seh ich den Wald vor lauter Bäumen nicht oder es geht (höchst unwahrscheinlich!!) nicht:

Datum 1: 12.12.2007 14:23:01
Datum 2: 12.12.2007 15:01:23

So. Nun will ich eigentlich nur diese beiden vergleichen:

```
if(Datum1.after(Datum2){
    return true;
}
else{
    return false;
}
```

Das Datum wird vorher entsprechend formatiert:


```
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy hh:mm:ss");
    Date kontrollDatum = sdf.parse(((DAObject) vDAObj.get(i)).getKontrollDatum());
```

Kann mir jemand sagen wo der Fehler liegt? 



Danke Oli


----------



## ARadauer (13. Dez 2007)

also grundsätzlich: es geht:


```
Calendar cal = new GregorianCalendar();
		Date date1 = cal.getTime();
		cal.add(Calendar.HOUR, 1);
		Date date2 = cal.getTime();
		if(date1.before(date2)){
			System.out.println("date 1 ist vor date2");
		}else{
			System.out.println("date 2 ist vor date1");
		}
```

wo kann der fehler liegen:
verwendetst du das java.util.Date; ?

(DAObject) vDAObj.get(i)).getKontrollDatum() liefert vielleicht einen Schmarrn zurück?

Date kontrollDatum = sdf.parse(((DAObject) vDAObj.get(i)).getKontrollDatum()) macht irgendwas falsch?

lass dir die beiden Datum vorm vergleichen mal ausgeben


----------



## lhein (13. Dez 2007)

Was sagt denn: 


```
if(Datum1.getTime() > Datum2.getTime()){
    return true;
}
else{
    return false;
}
```

?

lr


----------



## Oli (13. Dez 2007)

Hi,

also hier der komplette Code. Ich bekomme aus einer Datenbank Das Datum mehrerer Aufträge (Massnummer) Auf einem Button (PanelTouchButton) soll nun die Massnummer des ältesten Auftrages erscheinen.
Das Problem liegt allerdings darin, dass diese Aufträge in  verschiedene Farben und Werte vorliegen. Und danach sind die Buttons angelegt.

Mein Gedanke war jetzt eine Hashtable mit dem Schlüssel (farbe und wert) und dem Wert (Kontrolldatum) anzulegen.
Für jedes Datum das ich bekomme schaue ich nach, ob für den entsprechenden Schlüssel ein Datum vorliegt und vergleiche das dann mit dem erhaltenen. Wenn es vor dem Datum aus der Hashtable liegt, wird die Massnummer des Auftrages auf dem Button dargestellt.

Ich will also auf einer dynamischen Anzahl an Button die Massnummer des ältesten Auftrages darstellen:


```
Object key = ((PanelTouchButton) c[k]).getColorID().concat(((PanelTouchButton) c[k]).getXY());
    SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy hh:mm:ss");
    Date kontrollDatum = sdf.parse(((DAObject) vDAObj.get(i)).getKontrollDatum());
    if (listAeltester.get(key) == null) {
        listAeltester.put(key, kontrollDatum);
    }
    if (((Date) listAeltester.get(key)).getTime() < kontrollDatum.getTime()) {
    listAeltester.remove(key);
    listAeltester.put(key, kontrollDatum);
    ((PanelTouchButton) c[k]).setMassNummer("" + ((DAObject) vDAObj.get(i)).getMassNr());
}										}
```

Hab ich da irgendwo nen Denkfehler??


Grüße Oli


----------

