OOP Datumsunterschied in Tagen berechnen

socca

Neues Mitglied
Hallo miteinander,
Ich habe folgendes Problem:

Und zwar soll ich eine Art Büchereiprogramm schreiben. Bücher und DvDs können für eine bestimmte Zeitausgeliehen werden, ist diese Zeit überschritten, fallen Gebühren an.

Gegeben wurde mir ein Programmgerüst, um das aktuelle Datum mit dem Datum der Ausleihe zu vergleichen.
Sieht wie folgt aus:

[JAVA]import java.util.*;

public class Datum {
private int Jahr;
private int Monat;
private int Tag;
private Calendar cal;

public Datum() {
cal=Calendar.getInstance();
Jahr=cal.get(1);
Monat=cal.get(2)+1;
Tag=cal.get(5);
}

public Datum(int jahr, int monat, int tag){
cal=Calendar.getInstance();
this.Jahr=jahr;
this.Monat=monat;
this.Tag=tag;

}

public int getJahr() {
return Jahr;
}

public int getMonat() {
return Monat;
}

public int getTag() {
return Tag;
}

public int calcDiffDays(Datum ausleih) {


return (int) ((cal.getTimeInMillis()- ausleih.getTime())/(1000*60*60*24));
}

}
[/code]

Im genaueren geht es um die Methode calcDiffdays(). Es soll in einer anderen (abstrakten) Klasse (Medium) ein Ausleihdatum festgelegt werdem. Allerdings funktioniert die Methode ausleih.getTime() nicht. Ändere ich aber im eigentlichen Methodenkopf "Datum ausleih" auf "Date ausleih" funktioniert das ganze.
De Facto wurde mir aber durch ein UML Diagramm vorgegeben, dass "ausleih" vom Typ Datum ist.

Wo liegt also der Fehler ?

Im Anhang das UML-Diagramm, sowie das ursprüngliche Programmgerüst.
 

Anhänge

  • Bib.jpg
    Bib.jpg
    29,7 KB · Aufrufe: 49
  • Datum.java
    Datum.java
    683 Bytes · Aufrufe: 6
Deine klasse datum besitzt keine Methode mit dem Namen getTime... Wenn es sie nicht gibt, dann kannst du sie logischerweise auch nicht aufrufen.
 
Was ich eben nicht verstehe ist, dass es bei "Date ausleih" funktioniert und bei "Datum ausleih" eben nicht. Zumindest schmeißt er mir dann in Eclipse und Bluej keine Fehler raus.

Und da ja im UML Diagramm explizit steht , dass "Datum ausleih" übergeben werden soll, muss es dafür doch eine Lösung geben.
 
Zuletzt bearbeitet:
Date ist eben eine Java Klasse, welche eine getTime() Methode besitzt. Datum ist eine Klasse die du sselbst ersstellt hast und diese hat eben keine getTime() Methode.

Im Grunde musst du deine Datum Klasse nur um eine getTime Methode erweitern

Alternativ, kannst du auch die getTime Methode weglassen und direkt mit dem Calendar objekt von ausleih arbeiten:
Java:
cal.getTimeInMillis() - ausleih.cal.getTimeInMillis()
 
Zuletzt bearbeitet:

Zurück
Oben