# Vergleichen von datetime mit GregorianCalender-Werte



## Enfa (17. Dez 2006)

Hallo,

Also ich habe 2 Datumswerte. 

Ich hole mir datetime-Werte aus einer Datenbank. Und die Werte, was ich per GregorianCalender in meine Programm erstelle. 

Die Daten aus der Datenbank sieht ja so aus: 2006-17-12 00.00.00.

Die GregorianCalender habe ich so gebastelt: 17.12.2006.

Jetzt brauche ich eure Hilfe.

Wie kann ich diese Datum Werte mit einander vergleichen? Ich will nur wissen, ob die 2 Werte auf den selben Tag zeigen.

Muss ich zuerst den Wert aus der Datenbank irgendwie ins String umwandeln und dann mit substring die werte ausschneiden, 

oder gibt es eine einfachere Lösung??

Vielen Dank im Voraus.

Tschüss


----------



## Guest (17. Dez 2006)

```
Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
c1.setTime(sqlDate); // das Datum aus der Datenbank
c2.setTime(utilDate); // Datum, mit dem verglichen wird

      
if( c1.get(Calendar.YEAR) == c2.get(Calendar.YEAR)
   && c1.get(Calendar.MONTH) == c2.get(Calendar.MONTH)
   && c1.get(Calendar.DAY_OF_MONTH) == c2.get(Calendar.DAY_OF_MONTH))
{
   ...
}
```


----------



## L-ectron-X (17. Dez 2006)

Das geht noch etwas einfacher. Calendar implementiert die Methoden compareTo() und equals(), mit denen Sortier- bzw. Vergleichsoperationen durchgeführt werden können.

Mit equals() sieht das so aus:

```
if(c1.equals(c2)) {
   //beide sind gleich
}
```

Mit compareTo() siehts dann so aus:

```
int result = c1.compareTo(c2);
switch(result) {
   case 1:
   //c1 ist größer als c2
   break;

   case 0:
   //beide sind gleich
   break;

   case -1:
   //c1 ist kleiner als c2
}
```
compareTo ist aber eher für Sortieroperationen geeignet.
Falls es dir um die Formatierung deines Datenbank-Datums in ein Date-Objekt geht, musst du dich noch mal melden.


----------



## Guest (17. Dez 2006)

L-ectron-X hat gesagt.:
			
		

> Das geht noch etwas einfacher. Calendar implementiert die Methoden compareTo() und equals(), mit denen Sortier- bzw. Vergleichsoperationen durchgeführt werden können.


Klar, nur geht es daneben, wenn das eine Datum einen Uhrzeitanteil hat, das andere nicht.
Deswegen die harte Tour.


----------



## L-ectron-X (17. Dez 2006)

Wozu gibts denn DateFormat, damit kannst du dir deine Daten auf ein vergleichbares Format bringen.


----------



## Guest (17. Dez 2006)

L-ectron-X hat gesagt.:
			
		

> Wozu gibts denn DateFormat, damit kannst du dir deine Daten auf ein vergleichbares Format bringen.


Und dieses "in vergleichbares Format bringen" ist mit einem einfachem equals 
oder compareTo nicht getan. Mit DateFormat in Strings zu wandeln und diese zu vergleichen
ist zwar eine Lösung, aber total überflüssig. Wie auch immer...


----------



## Enfa (17. Dez 2006)

Hallo,

zur Erst: Danke für eure Antworten. Ist echt eine Hilfe für mich.

Ich werde beide Lösungsvorschläge bearbeiten. Und werde aufjedenfall was dazu lernen.

L-ectron-X, es wäre echt nett, wenn du mir zeigen würdest, wie man die Formatierung eines Datenbank-Datums in eine Date-Objekt funktioniert.

Vielen Dank im Voraus.

Tschüss


----------

