GregorianCalendar (vor und zurück)

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
grüß euch,

viel code für winziges und sehr leichtes problem.
habe mir folgende methoden zurecht gelegt:

Code:
  public void setVorTagesDatum(GregorianCalendar calendar, DateFormat af) {
    calendar.roll(calendar.DAY_OF_MONTH, -1);
    Date date = calendar.getTime();
    vorTagesDatum = af.format(date) ;
  }
  public String getVorTagesDatum() {
    return vorTagesDatum;
  }

  public void setNaechsterTagDatum(GregorianCalendar calendar, DateFormat af) {
    calendar.roll(calendar.DAY_OF_MONTH, +1);
    Date date = calendar.getTime();
    naechsterTagDatum = af.format(date) ;
  }
  public String getNaechsterTagDatum() {
    return naechsterTagDatum;
  }

die methoden werden aus dem konstruktor der reihe nach aufgerufen:
Code:
    public SystemZeit() {
    calendar = new GregorianCalendar();
    DateFormat af = new SimpleDateFormat("yyyy-MM-dd");   
    setVorTagesDatum(calendar, af);
    setNaechsterTagDatum(calendar, af);


wenn ich nun an irgendeiner stelle des programms das datum des gestrigen tages aufrufe, dann ist alles ok. wenn ich aber den des morgigen tages wissen möchte, dann bekomme ich den heutigen. offensichtlich merkt sich der GregorianCalendar mit der methode .roll an welchem tag er nun gerade ist. und der gestrige + einen tag mehr ergibt eben den heutigen. das würde aber heissen, dass ich bei der methode setNaechsterTagDatum 2 Tage nach vor rollen muss. das erscheint mir irgendwie falsch.
kann man das schlauer machen? bzw. würdet ihr einfach eine 2 setzen?

danke juergen
 

L-ectron-X

Gesperrter Benutzer
Ich habe mir den Code jetzt nicht angesehen, aber das könnte daran liegen, dass Calendar alle Tage, Monate Wochen etc. bei 0 beginnt zu zählen, nicht wie der Mensch bei 1. Ich finde das auch irgendwie umständlich.
 

SebiB90

Top Contributor
ist normal das der heutige tag heraus kommt weil du änderst da ja beim gleichem object die tage also einmal vor und wieder zurück, wie du ja schon gesagt hast. mein tipp: in der methode den calendar clonen und dann erst roll methode benutzen also so:

Code:
public void setVorTagesDatum(GregorianCalendar calendar, DateFormat af) { 
    Calendar cal = (Calenadr) calendar.clone();
    cal.roll(calendar.DAY_OF_MONTH, -1); 
    Date date = cal.getTime(); 
    vorTagesDatum = af.format(date) ; 
  }
 
G

Guest

Gast
also das mit dem clonen hat leider nicht funktioniert. ist ja auch verständlich, da ja auch beim geklonten objekt die referenzen die gleichen bleiben (glaub ich). also zeigt er auch beim geklinten objekt auf den gestrigen tag.

übringens mit 0 und 1 hat das nichts zu tun. trotzdem danke.
 

SebiB90

Top Contributor
das ist es ja beim clonen wird ein neues object erzeugt und es wird nicht die referenz auf das alte object weiter gegeben
das müsste eigentlich funktionieren. zeig nochmal den ganzen code.
 
G

Guest

Gast
Code:
import java.util.GregorianCalendar;
import java.util.Calendar;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

public class SystemZeit {
  public String Datum = null;
  public String Zeit = null;
  public String vorTagesDatum = null;
  public String naechsterTagDatum = null;
  GregorianCalendar calendar;

  public SystemZeit() {
    calendar = new GregorianCalendar();
    DateFormat af = new SimpleDateFormat("yyyy-MM-dd");
    DateFormat df = new SimpleDateFormat("HH-mm-ss");
    setAktuelleZeit(df);
    setAktuellesDatum(calendar, af);
    setVorTagesDatum(calendar, af);
    setNaechsterTagDatum(calendar, af);
  }


  public void setAktuelleZeit(DateFormat df) {
    Date date2 = calendar.getTime();
    Zeit = df.format(date2);
  }
  public String getAktuelleZeit() {
    return Zeit;
  }

  public void setAktuellesDatum(GregorianCalendar calendar, DateFormat af) {
    Date date = calendar.getTime();
    Datum = af.format(date);
  }
  public String getAktuellesDatum() {
    return Datum;
  }

  public void setVorTagesDatum(GregorianCalendar calendar, DateFormat af) {
    calendar.roll(calendar.DAY_OF_MONTH, -1);
    Date date = calendar.getTime();
    vorTagesDatum = af.format(date) ;
  }
  public String getVorTagesDatum() {
    return vorTagesDatum;
  }

  public void setNaechsterTagDatum(GregorianCalendar calendar, DateFormat af) {
    Calendar cal = (Calendar) calendar.clone();
    calendar.roll(cal.DAY_OF_MONTH, +1);
    Date date = calendar.getTime();
    naechsterTagDatum = af.format(date) ;
  }
  public String getNaechsterTagDatum() {
    return naechsterTagDatum;
  }
}
 

SebiB90

Top Contributor
1. bei setVorTagesDatum() muss du das calendar object auch clonen
2. du musst dann auch das geclonte object benutzen!
 
G

Guest

Gast
danke das tut. nun habe ich zum ersten mal ein objekt geklont. nicht schlecht herr specht.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Schleife für ein Jahr mit dem GregorianCalendar Java Basics - Anfänger-Themen 1
P GregorianCalendar Java Basics - Anfänger-Themen 4
D GregorianCalendar als Parameter Java Basics - Anfänger-Themen 2
I Datum ohne GregorianCalendar und co. Java Basics - Anfänger-Themen 3
M GregorianCalendar last month Java Basics - Anfänger-Themen 2
M GregorianCalendar Sortieren! Java Basics - Anfänger-Themen 2
P GregorianCalendar:GET Problem Java Basics - Anfänger-Themen 2
M GregorianCalendar Java Basics - Anfänger-Themen 4
U GregorianCalendar Java Basics - Anfänger-Themen 4
R Erste Schritte Arbeitszeit Zähler bzw Feierabend Uhr | GregorianCalendar | SimpleDateFormat| Java Basics - Anfänger-Themen 3
R GregorianCalendar auf Datum reduzieren Java Basics - Anfänger-Themen 9
A GregorianCalendar heute + X Tage Java Basics - Anfänger-Themen 11
L Java GregorianCalendar Java Basics - Anfänger-Themen 2
N GregorianCalendar Sommer/Winterzeit Probleme Java Basics - Anfänger-Themen 4
N GregorianCalendar Kalenderwoche in SimpelDateFormat auf 2 Systemen verschieden Java Basics - Anfänger-Themen 8
R mit GregorianCalendar Datum generieren Java Basics - Anfänger-Themen 3
C GregorianCalendar 2 Datumswerte(Differenz) auf volles Jahr prüfen Java Basics - Anfänger-Themen 4
C String to GregorianCalendar Java Basics - Anfänger-Themen 4
J GregorianCalendar: Probleme mit WEEK_OF_YEAR Java Basics - Anfänger-Themen 7
M Daten vergleichen mit GregorianCalendar - HILFE! :) Java Basics - Anfänger-Themen 3
K GregorianCalendar Java Basics - Anfänger-Themen 9
L Frage zur Ausgabe eines gesetzten GregorianCalendar Datums Java Basics - Anfänger-Themen 4
Schandro GregorianCalendar Sommerzeit abziehen Java Basics - Anfänger-Themen 6
A GregorianCalendar -Darstellung mit drawString Java Basics - Anfänger-Themen 3
P Problem mit setzen von Zeiten im GregorianCalendar Java Basics - Anfänger-Themen 3
E GregorianCalendar- Datum erstellen Java Basics - Anfänger-Themen 7
G GregorianCalendar Java Basics - Anfänger-Themen 4
W Date in Gregoriancalendar Java Basics - Anfänger-Themen 2
Z Zeitdifferenz mit GregorianCalendar Java Basics - Anfänger-Themen 6
C GregorianCalendar glaubt mir alles wieso! Java Basics - Anfänger-Themen 12
M ArrayList mit Objekt vom Typ GregorianCalendar Java Basics - Anfänger-Themen 3
C millisekunden bei gregoriancalendar stimmen nicht Java Basics - Anfänger-Themen 2
G GregorianCalendar Java Basics - Anfänger-Themen 10
S GregorianCalendar - Vergangene Zeit Java Basics - Anfänger-Themen 17
M GregorianCalendar bringt mich um. Java Basics - Anfänger-Themen 8
H GregorianCalendar Zeit abziehen (Countup) Java Basics - Anfänger-Themen 9
W In alten Code zurück- und dort wieder zurechtfinden? Java Basics - Anfänger-Themen 17
berserkerdq2 Ich gebe eine ArrayList als List zurück per MEthode, wie kann ich nun aber die ArrayList speichern? Java Basics - Anfänger-Themen 46
B Zurück Button erstellen Java Basics - Anfänger-Themen 1
M Was habe ich hier falsch, dass wenn ich z.B.: 11 eingebe mir false zurück gegeben wird? Java Basics - Anfänger-Themen 2
G Rekursive Methode liefert augenscheinlich keinen boolean-Wert zurück. Java Basics - Anfänger-Themen 4
H Ein gegebenes Int Array zu Zwei Arrays zurück geben Java Basics - Anfänger-Themen 6
P Verzweigungen Wert zurück geben Java Basics - Anfänger-Themen 2
D gebe string zurück mit von bis bestimmtes Zeichen Java Basics - Anfänger-Themen 4
L jar, class, java und wieder zurück Java Basics - Anfänger-Themen 8
MiMa Zurück zum Schleifenkopf Java Basics - Anfänger-Themen 6
D Funktion gibt Dimension zurück Java Basics - Anfänger-Themen 11
JavaNewbie2.0 Zur Anweisung zurück Java Basics - Anfänger-Themen 13
F Scanner - nextLine() gibt leeren String zurück Java Basics - Anfänger-Themen 2
Tommy Nightmare void Methode gibt Array zurück Java Basics - Anfänger-Themen 3
E Methoden Methode liefert keinen Wert zurück Java Basics - Anfänger-Themen 16
N Kalender - Tag addieren gibt 31. Juni zurück Java Basics - Anfänger-Themen 3
O Methoden geben nichts zurück Java Basics - Anfänger-Themen 6
F Array abarbeiten und bei Fehler zurück ins Array legen Java Basics - Anfänger-Themen 1
D Zurück Button -- Background wird nicht angezeigt Java Basics - Anfänger-Themen 4
W Input/Output DataOutputStream gibt NULL zurück Java Basics - Anfänger-Themen 5
D Methoden int to byte array und zurück? Java Basics - Anfänger-Themen 5
N Variablen zurück casten Java Basics - Anfänger-Themen 3
O Methode gibt Null zurück Java Basics - Anfänger-Themen 7
C Input/Output System.in.read() gibt nicht -1 zurück? Java Basics - Anfänger-Themen 3
P JavaFX Textfelder geben immer null zurück Java Basics - Anfänger-Themen 8
T Klassen wie funktionieren Streams, warum bekomme ich int zurück? Java Basics - Anfänger-Themen 2
D Methode die statt char[] ein "null" zurück gibt Java Basics - Anfänger-Themen 8
M Input/Output File.listFiles() gibt null zurück Java Basics - Anfänger-Themen 3
B Warum gibst hier Equals false zurück ? Java Basics - Anfänger-Themen 23
B Input/Output File.length() gibt bei vielen Ordnern 0 zurück Java Basics - Anfänger-Themen 9
C Von einer Exception zurück zum Normalablauf Java Basics - Anfänger-Themen 6
B Array aus Klasse zurück geben Java Basics - Anfänger-Themen 2
S Rückgabetyp - Objekt gibt sich selber zurück Java Basics - Anfänger-Themen 4
B eclipse Oberfläche zurück setzen Java Basics - Anfänger-Themen 2
N Unerklärlich: Rekursiver Algorithmus gibt falschen Datentyp zurück... Java Basics - Anfänger-Themen 4
L Problem damit, leeren String zurück zu geben Java Basics - Anfänger-Themen 16
M Zahl geschickt in Bit und zurück umwandeln Java Basics - Anfänger-Themen 2
L JTextField getText() gibt immer null zurück Java Basics - Anfänger-Themen 10
N Objekt in String wandeln und zurück Java Basics - Anfänger-Themen 2
R If-Abfrage liefert false zurück, wieso ? Java Basics - Anfänger-Themen 20
S Vom Programm erstelltes Objekt setzt sich nach Programmende auf 0 zurück Java Basics - Anfänger-Themen 10
L LinkedList vorgänger Knoten zurück geben Java Basics - Anfänger-Themen 4
L Datentypen byte[] in String und wieder zurück Java Basics - Anfänger-Themen 3
C Array ist befüllt, doch gibt sie immer 0 zurück Java Basics - Anfänger-Themen 3
Luk10 Methode gibt false zurück! Java Basics - Anfänger-Themen 2
Y System.console() liefert immer null zurück. Java Basics - Anfänger-Themen 6
M JDialog soll was an die AufruferKlasse zurück geben Java Basics - Anfänger-Themen 3
J Rekursion über int und array gibt zu wenige Werte zurück Java Basics - Anfänger-Themen 5
O Runden - x/100 liefert long zurück Java Basics - Anfänger-Themen 7
E Jar Dateien zurück in *.java dateien Java Basics - Anfänger-Themen 3
D Thread gibt nur jeden 2. Wert zurück Java Basics - Anfänger-Themen 2
H2SO3- int. (utf8) zurück in zeichen verwandeln Java Basics - Anfänger-Themen 5
K Objekte zurück parsen Java Basics - Anfänger-Themen 2
G InputStream aufrufen, ändern und zurück geben Java Basics - Anfänger-Themen 2
C String in Int umwandeln // Von Int wieder in String zurück Java Basics - Anfänger-Themen 10
C HashMap liefert HashMap zurück - incompatible types Java Basics - Anfänger-Themen 2
G static array liefert falsche Werte zurück Java Basics - Anfänger-Themen 2
M Werte aus Jcombobox sollten als int-Werte zurück gegeben . Java Basics - Anfänger-Themen 7
G date in sekunden umwandeln und wieder zurück. Java Basics - Anfänger-Themen 6
F Was gibt der Buffered Reader zurück bei Dateiende? Java Basics - Anfänger-Themen 2
G JInternalFrame FensterInFenster-resizable ?Springt zurück! Java Basics - Anfänger-Themen 4
T Aus dem package zurück auf die Root Ebene Java Basics - Anfänger-Themen 2
D Zurück in die Zukunft oder wie man Zeitpunkte berechnet Java Basics - Anfänger-Themen 2
E von JFrame zu JPanel und wieder zurück . Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben