Hallo zusammen,
bin momentan dran zwei Datumswerte zu vergleichen und habe mit der Berechnungslogik ein Problem:
Ich will eine Methode schreiben die mir zwei Gregorian-Calendar entgegen nimmt und True zurück liefert, wenn die Differenz der Datumswerte größer oder gleich ein Jahr ist.
Beispiel:
Input:
von-Datum: 25.06.2008
bis-Datum: 30.06.2009
Output:
True
Input:
von-Datum: 01.07.2009
bis-Datum: 30.06.2010
Output:
True
Input:
von-Datum: 02.07.2009
bis-Datum: 30.06.2010
Output:
False
Scheint nicht für alle Fälle zu klappen. Kann mir jemand sagen, wie das richtig zu rechnen habe?
Vielen dank im voraus.
Cheefrocker
bin momentan dran zwei Datumswerte zu vergleichen und habe mit der Berechnungslogik ein Problem:
Ich will eine Methode schreiben die mir zwei Gregorian-Calendar entgegen nimmt und True zurück liefert, wenn die Differenz der Datumswerte größer oder gleich ein Jahr ist.
Beispiel:
Input:
von-Datum: 25.06.2008
bis-Datum: 30.06.2009
Output:
True
Input:
von-Datum: 01.07.2009
bis-Datum: 30.06.2010
Output:
True
Input:
von-Datum: 02.07.2009
bis-Datum: 30.06.2010
Output:
False
Java:
public static boolean real_full_year(GregorianCalendar von,
GregorianCalendar bis) {
GregorianCalendar xvon = new GregorianCalendar(von.get(Calendar.YEAR),
von.get(Calendar.MONTH), von.get(Calendar.DATE),0,0);
GregorianCalendar xbis = new GregorianCalendar(bis.get(Calendar.YEAR),
bis.get(Calendar.MONTH), bis.get(Calendar.DATE), 0,0);
// zieht ein Tag ab, da der erste Tag ja auch mit zählt.
xvon.add(Calendar.DATE, -1);
// fügt dem von-Datum 1 Jahr hinzu.
xvon.add(Calendar.YEAR, 1);
System.out.println(xvon);
System.out.println(xbis);
// Überprüft ob das Von-Datum nach dem bis-Datum ist. Wenn ja liefert er
// false zurück
// andernfalls liegt das bis-Datum nach oder gleich mit dem von-Datum
// auf.
System.out.println("BEFORE:von bis");
System.out.println(xvon.before(xbis));
System.out.println("equals:von bis");
System.out.println(xvon.equals(xbis));
System.out.println("AFTER:von bis");
System.out.println(xvon.after(xbis));
if (xvon.equals(xbis) || xvon.after(xbis)) {
return true;
} else {
return false;
}
Vielen dank im voraus.
Cheefrocker