KW=1 Jahr=2008 Monat=Dezember => GregorianCalendar

Status
Nicht offen für weitere Antworten.

The_S

Top Contributor
Hi-Ho,

warum geben mir folgende Codezeilen (heute am 30.12.2008 um ca. 10 Uhr):

Code:
		GregorianCalendar cal = new GregorianCalendar();
    	System.err.println(cal.get(Calendar.WEEK_OF_YEAR));
    	System.err.println(cal.get(Calendar.YEAR));

folgendes aus:

Code:
1
2008

?

Danke!
 

The_S

Top Contributor
Also mir ist schon klar, dass wir die KW1 haben. Aber noch haben wir eben das Jahr 2008. Ich hab ein Program, das anhand der KW unterschiedliche Daten läd. Wenn ich jetzt den 1.1.2008 habe, habe ich KW1 im Jahr 2008 und wenn ich den 31.12.2008 habe, habe ich KW1 im Jahr 2008. Beim 1.1.2009 hätte ich KW1 im Jahr 2009. Und das ist jetzt etwas dumm, weil ich eindeutige KWs benötige. Also entweder auch für heute schon die KW1 2009 oder eben die KW53 für 2008 (dann aber auch für die 1. KW 2009).

Natürlich könnte ich überprüfen, in welchem Monat ich mich befinde. Aber das kanns ja auch net sein ...
 

L-ectron-X

Gesperrter Benutzer
Weil wir uns schon in der ersten Woche des neuen Jahres befinden, aber noch das Jahr 2008 haben.
kalender.png


cal.get(Calendar.YEAR) gibt eben das aktuelle Jahr zurück...
 

ARadauer

Top Contributor
also konkret haben wir kw 01-2009,
das kann natürlich zu fehlern führen, mir ist es heute auch aufgefallen, als ich ein paar log files gesucht habe... und die im vereichnis 2008/01 drinnen waren...
 

The_S

Top Contributor
jop, siehe meinen 2. Beitrag um Missverständnisse auszuschließen ;) .

Aber kann ich irgendwie eine eindeutige Kombination von Jahr und Woche des Jahres erhalten, ohne manuell in einer If-Abfrage testen zu müssen, ob KW=1 und Monat=Dezember ist, und in diesem Fall das Jahr um den Wert 1 zu erhöhen?
 

L-ectron-X

Gesperrter Benutzer
Wenn's die Methoden von Calendar/GregorianCalendar nicht hergeben, wohl nicht.
Das ist natürlich bischen blöde, dass man auch an solche Konstellationen denken muss.
 

The_S

Top Contributor
Das ist in der Tat blöd. Vorallem 2009 zählt die letzte Dezember Woche noch zur KW 53 und die erste Januar Woche 2010 ebenfalls noch zur KW 53 (allerdings dann 2009) :p
 
S

Spacerat

Gast
Ich glaube... das ist das Problem in jeder der Klassen vom Typ (Gregorian) Calender. Überall ist es gleich... für die Kalenderwoche wird schon "2009" benötigt, während das Datum immer noch "2008" ist. In keiner Implementation habe ich bisher sowas wie "YEAR_OF_KW" gesehen. Die speichern halt nur eine Jahreszahl.

Also @Hobbit: Nein kannst du nicht...

mfg Spacerat
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben