Hallo Freunde,
ich habe so meine Probleme mit der Berechnung von Vorjahreszeiträumen bzw. mit dem GregorianCalendar.
Und zwar ist das Ergebnis anders, je nach dem ob ich einen System.out.println ausgeben lasse oder nicht.
Bei folgendem Code:
ist die richtige Ausgabe:
Führe ich dagegen folgenden Code aus:
ist das Ergebnis falsch, nämlich
Wo ist da das Problem? Die Datumsberechnung kann doch nicht von einem System.out.println abhängig sein?
Weiß jemand was da schiefläuft?
Danke!
ich habe so meine Probleme mit der Berechnung von Vorjahreszeiträumen bzw. mit dem GregorianCalendar.
Und zwar ist das Ergebnis anders, je nach dem ob ich einen System.out.println ausgeben lasse oder nicht.
Bei folgendem Code:
Java:
//BOF VORJAHRESBERECHNUNG
GregorianCalendar gc_from = new GregorianCalendar(2010, 0, 1);
GregorianCalendar gc_from_vorjahr = new GregorianCalendar(gc_from.get(GregorianCalendar.YEAR), gc_from.get(GregorianCalendar.MONTH), gc_from.get(GregorianCalendar.DAY_OF_MONTH));
//Jahr zurücksetzen
gc_from_vorjahr.add(GregorianCalendar.YEAR, -1);
System.out.println(gc_from_vorjahr.get(GregorianCalendar.YEAR) + "-" + (gc_from_vorjahr.get(GregorianCalendar.MONTH)+1) + "-" + gc_from_vorjahr.get(GregorianCalendar.DAY_OF_MONTH));
//Wochentag setzen
gc_from_vorjahr.set(GregorianCalendar.DAY_OF_WEEK, gc_from.get(GregorianCalendar.DAY_OF_WEEK));
System.out.println(gc_from_vorjahr.get(GregorianCalendar.YEAR) + "-" + (gc_from_vorjahr.get(GregorianCalendar.MONTH)+1) + "-" + gc_from_vorjahr.get(GregorianCalendar.DAY_OF_MONTH));
ist die richtige Ausgabe:
Code:
2009-1-1
2009-1-2
Führe ich dagegen folgenden Code aus:
Java:
//BOF VORJAHRESBERECHNUNG
GregorianCalendar gc_from = new GregorianCalendar(2010, 0, 1);
GregorianCalendar gc_from_vorjahr = new GregorianCalendar(gc_from.get(GregorianCalendar.YEAR), gc_from.get(GregorianCalendar.MONTH), gc_from.get(GregorianCalendar.DAY_OF_MONTH));
//Jahr zurücksetzen
gc_from_vorjahr.add(GregorianCalendar.YEAR, -1);
//System.out.println(gc_from_vorjahr.get(GregorianCalendar.YEAR) + "-" + (gc_from_vorjahr.get(GregorianCalendar.MONTH)+1) + "-" + gc_from_vorjahr.get(GregorianCalendar.DAY_OF_MONTH));
//Wochentag setzen
gc_from_vorjahr.set(GregorianCalendar.DAY_OF_WEEK, gc_from.get(GregorianCalendar.DAY_OF_WEEK));
System.out.println(gc_from_vorjahr.get(GregorianCalendar.YEAR) + "-" + (gc_from_vorjahr.get(GregorianCalendar.MONTH)+1) + "-" + gc_from_vorjahr.get(GregorianCalendar.DAY_OF_MONTH));
ist das Ergebnis falsch, nämlich
Code:
2008-12-26
Wo ist da das Problem? Die Datumsberechnung kann doch nicht von einem System.out.println abhängig sein?
Weiß jemand was da schiefläuft?
Danke!