Calendar add-Funktion

mazyd

Mitglied
Hallo erstmal!

Ich komme mir schon ein bisschen doof vor, aber ich schaffe es scheinbar nicht richtig mit Calendar klarzukommen.

Es geht um eine Aufgabe, die erledigt werden soll und einen Anfangstermin und eine Dauer in Stunden übergeben bekommt.
Da ist auch das Ende der Aufgabe als Datum brauche, versuche ich es mir im Konstruktor zu berechnen mit folgendem Code:

Java:
 public class Aufgabe{
    private Calendar anfang;
    private Calendar ende;

    public Aufgabe(Calendar anfang, int dauer){
        this.anfang = anfang;
        this.ende = anfang;
        this.ende.add(Calendar.HOUR_OF_DAY, dauer);
    }
}


Schön und gut, aber das Problem ist, dass danach ende irgendwie immer noch gleich anfang ist, ohne dass dauer dazuaddiert wurde.

Bin ich wirlklich zu doof dafür?
 
mazyd hat gesagt.:
[JAVA=7]this.ende = anfang;[/code]
Beide Variablen referenzieren auf das gleiche Objekt.
Sobald du also das Objekt veränderst, werden beide Variablen die gleichen Veränderungen zeigen.

Die schnellste Lösung scheint es zu sein, der Variable [c]ende[/c] ein geklontes Objekt zu geben:
[JAVA=7]
this.ende = (Calendar) anfang.clone();

// zum Testen; true wenn beide Variablen auf das gleiche Objekt referenzieren, false wenn nicht
System.out.println("Gleiche Objekte: " + anfang == ende);
[/code]
 

Zurück
Oben