GregorianCalendar 2 Datumswerte(Differenz) auf volles Jahr prüfen

Cheefrocker

Bekanntes Mitglied
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


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;
		}
Scheint nicht für alle Fälle zu klappen. Kann mir jemand sagen, wie das richtig zu rechnen habe?

Vielen dank im voraus.

Cheefrocker
 

Michael...

Top Contributor
equals() überprüft nicht ob die beiden Daten gleich sind, sondern ob die beiden Objekte gleich sind.

Hier mein Vorschlag:
Java:
	public static boolean real_full_year(GregorianCalendar von, GregorianCalendar bis) {
		GregorianCalendar vonClone = (GregorianCalendar)von.clone();
		// fügt dem von-Datum 1 Jahr hinzu.
		vonClone.add(Calendar.YEAR, 1);
		return vonClone.getTimeInMillis() <= bis.getTimeInMillis();
	}
 

Cheefrocker

Bekanntes Mitglied
Hallo Michael,
danke für deinen Code-Schnipsel.

Wenn ich den ersten Tag mitzählen lassen will muss ich doch noch 1 Tag abziehen?
vonClone.add(Calendar.DATE, -1);

Klappt deine Lösung für alle Jahre und Konstellationen? (Schaltjahr,...)

Viele Grüße
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Schleife für ein Jahr mit dem GregorianCalendar Java Basics - Anfänger-Themen 1
P GregorianCalendar Java Basics - Anfänger-Themen 4
D GregorianCalendar als Parameter Java Basics - Anfänger-Themen 2
I Datum ohne GregorianCalendar und co. Java Basics - Anfänger-Themen 3
M GregorianCalendar last month Java Basics - Anfänger-Themen 2
M GregorianCalendar Sortieren! Java Basics - Anfänger-Themen 2
P GregorianCalendar:GET Problem Java Basics - Anfänger-Themen 2
M GregorianCalendar Java Basics - Anfänger-Themen 4
U GregorianCalendar Java Basics - Anfänger-Themen 4
R Erste Schritte Arbeitszeit Zähler bzw Feierabend Uhr | GregorianCalendar | SimpleDateFormat| Java Basics - Anfänger-Themen 3
R GregorianCalendar auf Datum reduzieren Java Basics - Anfänger-Themen 9
A GregorianCalendar heute + X Tage Java Basics - Anfänger-Themen 11
L Java GregorianCalendar Java Basics - Anfänger-Themen 2
N GregorianCalendar Sommer/Winterzeit Probleme Java Basics - Anfänger-Themen 4
N GregorianCalendar Kalenderwoche in SimpelDateFormat auf 2 Systemen verschieden Java Basics - Anfänger-Themen 8
R mit GregorianCalendar Datum generieren Java Basics - Anfänger-Themen 3
C String to GregorianCalendar Java Basics - Anfänger-Themen 4
J GregorianCalendar: Probleme mit WEEK_OF_YEAR Java Basics - Anfänger-Themen 7
M Daten vergleichen mit GregorianCalendar - HILFE! :) Java Basics - Anfänger-Themen 3
K GregorianCalendar Java Basics - Anfänger-Themen 9
L Frage zur Ausgabe eines gesetzten GregorianCalendar Datums Java Basics - Anfänger-Themen 4
Schandro GregorianCalendar Sommerzeit abziehen Java Basics - Anfänger-Themen 6
A GregorianCalendar -Darstellung mit drawString Java Basics - Anfänger-Themen 3
P Problem mit setzen von Zeiten im GregorianCalendar Java Basics - Anfänger-Themen 3
E GregorianCalendar- Datum erstellen Java Basics - Anfänger-Themen 7
G GregorianCalendar Java Basics - Anfänger-Themen 4
W Date in Gregoriancalendar Java Basics - Anfänger-Themen 2
Z Zeitdifferenz mit GregorianCalendar Java Basics - Anfänger-Themen 6
C GregorianCalendar glaubt mir alles wieso! Java Basics - Anfänger-Themen 12
M ArrayList mit Objekt vom Typ GregorianCalendar Java Basics - Anfänger-Themen 3
C millisekunden bei gregoriancalendar stimmen nicht Java Basics - Anfänger-Themen 2
G GregorianCalendar (vor und zurück) Java Basics - Anfänger-Themen 7
G GregorianCalendar Java Basics - Anfänger-Themen 10
S GregorianCalendar - Vergangene Zeit Java Basics - Anfänger-Themen 17
M GregorianCalendar bringt mich um. Java Basics - Anfänger-Themen 8
H GregorianCalendar Zeit abziehen (Countup) Java Basics - Anfänger-Themen 9
S zwei Datumswerte vergleichen Java Basics - Anfänger-Themen 3
I Differenz zwischen LocalDateTime Java Basics - Anfänger-Themen 4
Leo_1789 Differenz ausrechnen zwischen denn idealgewicht und denn echten Gewicht Java Basics - Anfänger-Themen 7
KogoroMori21 Java Datum Differenz (kleiner Fehler) Java Basics - Anfänger-Themen 10
M Wie erzeuge ich die Differenz von zwei Daten in Stunden?? Java Basics - Anfänger-Themen 2
J Best Practice Datum Differenz aus zwei Strings ermitteln Java Basics - Anfänger-Themen 8
J Java Datum- Zeit Differenz bilden! Java Basics - Anfänger-Themen 4
F Datum Differenz berechnen Java Basics - Anfänger-Themen 7
Z Differenz zwischen 2 Daten berechnen, ohne importiere Funktionen! Java Basics - Anfänger-Themen 10
T Programm, das die Differenz zweier Daten ausgibt Java Basics - Anfänger-Themen 4
B Differenz von 2 Datum Java Basics - Anfänger-Themen 8
L Date differenz Java Basics - Anfänger-Themen 6
C Differenz-Methode mit Array lösen Java Basics - Anfänger-Themen 14
W Differenz in Tagen von 2 Daten Java Basics - Anfänger-Themen 6
L Datumsberechnung - Differenz von Monaten Java Basics - Anfänger-Themen 5
F java.sql.Date Differenz Java Basics - Anfänger-Themen 3
B Differenz zwischen zwei Datumswerten ermitteln Java Basics - Anfänger-Themen 2
G Differenz in Tage Java Basics - Anfänger-Themen 3
H Differenz zwischen Datum Java Basics - Anfänger-Themen 4
B Datum: Differenz in Tagen berechen Java Basics - Anfänger-Themen 3
R Differenz Iterative Java Basics - Anfänger-Themen 14
T Differenz berechen Java Basics - Anfänger-Themen 14

Ähnliche Java Themen

Neue Themen


Oben