[Java] GregorianCalendar

dennis3484

Ensign
Registriert
Apr. 2003
Beiträge
146
Hallo,

ich habe gerade einen kleinen Terminkalender in Java geschrieben. Eine Methode soll prüfen, ob der Termin heute liegt, ob er in dieser Woche liegt oder ob der Zeitpunkt des betreffenden Termins schon vorbei ist. Dazu verwende ich folgende Code:

Code:
public String Vergleich() {
		String heute = "Der eingegebene Termin ist HEUTE";
		String dieseWoche = "Der eingegebene Termin liegt IN DIESER WOCHE";
		String esWarEinmal = "Der eingegebene Termin befindet sich IN DER VERGANGENHEIT";
		String allesFalsch = "Der eingegebene Termin ist IRGENDWANN";
		
		GregorianCalendar aktDatum = new GregorianCalendar();
		
		// System.out.println(datum.get(Calendar.WEEK_OF_YEAR));
		// System.out.println(aktDatum.get(Calendar.WEEK_OF_YEAR));
		
		if ((datum.get(Calendar.YEAR) == aktDatum.get(Calendar.YEAR)) && 
		(datum.get(Calendar.WEEK_OF_YEAR) == aktDatum.get(Calendar.WEEK_OF_YEAR)))
		{
			if (datum.get(Calendar.DAY_OF_YEAR) == aktDatum.get(Calendar.DAY_OF_YEAR))
				return heute;
			else if (datum.get(Calendar.DAY_OF_YEAR) > aktDatum.get(Calendar.DAY_OF_YEAR))
				return dieseWoche;
		}	
		else if((datum.get(Calendar.YEAR) <= aktDatum.get(Calendar.YEAR))&&
				(datum.get(Calendar.DAY_OF_YEAR) < aktDatum.get(Calendar.DAY_OF_YEAR)))
			return esWarEinmal;
		
		return allesFalsch;
	}

Nun ist mir folgendes aufgefallen: Übergebe ich den heutigen Tag als Termin, stimmt als erstes das Jahr (vom heutigen Tag) überein. Bei der Abfrage ob nun die Woche des Jahres stimmt, passiert jedoch etwas kurioses! Die Woche des aktuellen Datums ist 5 Wochen zu wenig. (Zur Verdeutlichung: Wir sind heute in 25. Woche, GregorianCalendar ließt aber Woche 20 aus.) Natürlich ließe sich dieses Problem mit einem einfachen " + 5 " lösen, jedoch würde ich gerne wissen was da falsch läuft und wie ich das umgehen kann.


Danke für eure Hilfe. Ich hoffe, dass die Erklärung einigermaßen deutlich war!

MFG
 
Hi,

wie kommst du auf die 25. Woche?

laut meinem Kalender stimmt die Ausgabe des Programms, Heute hat die 21. woche begonnen
 
Tja, so kann's gehen. Ich Idiot habe nicht beachtet, dass die Monate bei 0 anfangen! Somit wäre das Problem auch schon gelöst. ;)

Ist ja auch bescheuert, wenn die einen Sachen bei 0 und die anderen bei 1 anfangen - und das auch noch in der gleichen Klasse. :rolleyes:
 
Zurück
Oben