Hallo,
ich habe hier einen äußerst seltsamen Fehler beim Verwenden von GregorianCalendar.
Nämlich:
Ich habe eine Variable "earliestDate", die ein Datum enthält, zum Beispiel den 29.01.2009.
Dann möchte ich eine weitere Variable "lookupStartDate"generieren, die auf 30 Tage vor "earliestDate" stehen soll.
Sie wird folgendermaßen erstellt:
Laut dem API Eintrag von GregorianCalendar.add (siehe HIER) sollten dabei die Werte entsprechend konsistent umgewandelt werden. Also sollte sich zum Beispiel das Monats-Feld ändern, wenn die Tage den Monat verlassen.
Wenn ich nun aber "lookupStartDate" ausgeben lasse, wird mir als Datum der 20.0.2009 angezeigt!
Ich frage mich nun, wie kann das sein?
Nur für den Fall dass doch nur irgendetwas mit der Ausgabe nicht stimmt, hier noch die Anweisungen, mit denen ich die Daten ausgeben lasse:
Was ich schon versucht habe, ist beim add statt DAY_OF_MONTH DAY_OF_YEAR anzugeben, aber ohne Effekt...
Java Version ist 1.6.0_11
Wäre für jede Hilfe dankbar, da ich hier komplett auf dem Schlauch stehe.
ich habe hier einen äußerst seltsamen Fehler beim Verwenden von GregorianCalendar.
Nämlich:
Ich habe eine Variable "earliestDate", die ein Datum enthält, zum Beispiel den 29.01.2009.
Dann möchte ich eine weitere Variable "lookupStartDate"generieren, die auf 30 Tage vor "earliestDate" stehen soll.
Sie wird folgendermaßen erstellt:
Code:
GregorianCalendar lookupStartDate = new GregorianCalendar( earliestDate.get(Calendar.YEAR) , earliestDate.get(Calendar.MONTH) , earliestDate.get(Calendar.DAY_OF_MONTH) );
lookupStartDate.add(Calendar.DAY_OF_MONTH,-30);
Laut dem API Eintrag von GregorianCalendar.add (siehe HIER) sollten dabei die Werte entsprechend konsistent umgewandelt werden. Also sollte sich zum Beispiel das Monats-Feld ändern, wenn die Tage den Monat verlassen.
Wenn ich nun aber "lookupStartDate" ausgeben lasse, wird mir als Datum der 20.0.2009 angezeigt!
Ich frage mich nun, wie kann das sein?
Nur für den Fall dass doch nur irgendetwas mit der Ausgabe nicht stimmt, hier noch die Anweisungen, mit denen ich die Daten ausgeben lasse:
Code:
System.out.println("EARLIEST: "+earliestDate.get(Calendar.DAY_OF_MONTH)+"."+earliestDate.get(Calendar.MONTH)+"."+earliestDate.get(Calendar.YEAR));
System.out.println("LOOKUP START: "+lookupStartDate.get(Calendar.DAY_OF_MONTH)+"."+lookupStartDate.get(Calendar.MONTH)+"."+lookupStartDate.get(Calendar.YEAR));
Was ich schon versucht habe, ist beim add statt DAY_OF_MONTH DAY_OF_YEAR anzugeben, aber ohne Effekt...
Java Version ist 1.6.0_11
Wäre für jede Hilfe dankbar, da ich hier komplett auf dem Schlauch stehe.