Calendar - komme nicht weiter mit add

086033

Mitglied
Ich versuche schon seit Stunden die Add-Methode der Klasse Calendar zu nutzen. Da es meine erste Implementierung einer Bibliotheksklasse ist, habe ich ein bisschen Mühe damit.

Ausgangslage:
Beim Ausleihen soll das Ausleihdatum gespeichert werden + das voraussichtliche Rückgabedatum.
(Bei der Rückgabe soll sodann das Rückgabedatum gespeichert werden.)

Folgendes habe ich zurzeit: (sorry, ich glaube nicht, dass ich es doppelt machen müsste, ist mir zurzeit aber noch logischer, obwohl es nicht funktioniert 😉)

Java:
    private String ausleihdatum;
    private String current;
    Calendar cal = Calendar.getInstance();
    int day = cal.get(Calendar.DAY_OF_MONTH);
    int month = cal.get(Calendar.MONTH) +1;
    int year = cal.get(Calendar.YEAR);

    private String vorausrueckgabedatum;
    private String vorausrueckgabedate;
    Calendar cal1 = Calendar.getInstance(); //aktuelles Datum, wir jeweils bei ausleihen() und zurueckgeben() neu gesetzt.
    int day1 = cal1.get(Calendar.DAY_OF_MONTH);
    int month1 = cal1.get(Calendar.MONTH) +1;
    int year1 = cal1.get(Calendar.YEAR);

public void ausleihen(String ausleiher) //wird von Datenbank-Instanz ausgeführt
    {
        if (!ausgeliehen) {
            if (!vorgemerkt) {
                this.ausleiher = ausleiher;
                speichereDatum();
                ausleihdatum = current;
                addStandardleihdauer();
                speicherDatumleihdauer();
                vorausrueckgabedatum = vorausrueckgabedate;
                ausgeliehen = true;
                vorgemerkt = false;
                vormerker = null;
            }

public String speichereDatum()
    {
        return current = (day + "." + month + "." + year);
    }
    
    public void addStandardleihdauer()
    {
        cal1.add(Calendar.DAY_OF_MONTH, 14);
    }
    
     public String speicherDatumleihdauer()
    {
        return vorausrueckgabedate = (day1 + "." + month1 + "." + year1);
    }

Das mit dem Ausleihdatum speichern funktioniert tadellos, aber es nimmt beim voraus(sichtliche)rueckgabedatum immer das aktuelle Datum.

noch ne Nebenfrage:
"int year = cal.get(Calendar.YEAR)" warum muss vor dem int kein private stehen?

Vielen Dank für eure Hilfe!
 
Du musst den Variablen day, month, year natürlich auch den neuen Wert zuschreiben, denn die haben ja immernoch den gleichen Wert wie beim initialisieren.

Da _muss_ nirgends private vor stehen, es kann und ich würde es auch empfehlen, da sie dann von aussen nur per setter verändert werden können.
 

Zurück
Oben