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:
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
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