Geburtstagskalender

TheNox21

Mitglied
Hallo und zwar hab ich folgende Aufgabe die ich nicht ganz verstehe bzw. es ganz hilfreich wäre wenn es mir jemand erklärt. Wie nutze z.B. public boolean jährtSichHeute() und muss ich es dann mit public boolean hatHeuteGeburtstag() vetgleichen? Schonmal danke im vorraus.


Ihre Urgroßmutter hat mit großer Begeisterung vernommen, dass Sie jetzt
Programmieren können. Da sie in letzter Zeit ein wenig vergesslich geworden ist,
wünscht sie sich von Ihnen ein Programm, das ihr erlaubt, die Geburtstage ihrer
zahlreichen Bekannten zu verwalten und das Sie darauf hinweist, welche
Bekannten gerade Geburtstag haben. Diesen Wunsch wollen Sie natürlich gerne
erfüllen. Sie beginnen deshalb sofort damit, ein Java-Programm für einen
Geburtstagskalender zu schreiben. Dazu gehen Sie in folgenden Schritten vor:

a) Definieren Sie eine Klasse Datum, die eine Datumsangabe mit Tag, Monat und
Jahr realisiert. Die Klasse hat folgende öffentliche Komponenten:

public Datum(int tag, int monat, int jahr)
Konstruktor, der ein Datum mit den angegebenen Werten erzeugt.

public String toString()
Wandelt das Datum in eine Zeichenkette um. Der Monatsname soll dabei
ausgeschrieben werden, z.B. in der Form "16. Juni 2004".

public boolean jährtSichHeute()
Die Methode liefert true, falls sich das Datum heute jährt, d.h. Tag und
Monat des Datums mit Tag und Monat des aktuellen Datums
übereinstimmen. Das aktuelle Datum können Sie in Java folgendermaßen
bestimmen:
java.util.Calendar cal = new java.util.GregorianCalendar();
int jahr = cal.get(java.util.Calendar.YEAR);
int monat = 1 + cal.get(java.util.Calendar.MONTH);
int tag = cal.get(java.util.Calendar.DAY_OF_MONTH);

b) Definieren Sie eine Klasse Person, die die Daten einer Person beschreibt – und
zwar Name, Geburtsdatum und Geschlecht. Die Klasse soll folgende öffentliche
Komponenten besitzen:

public Person(String name, Datum geburtstag, boolean
istWeiblich))
Konstruktur, der ein Personen-Objekt mit den angegebenen Daten erzeugt.
public String toString()
Wandelt Personendaten in einen String um, z.B. in der Form "Herr Meier,
geb. am 16. Juni 1982" bzw. "Frau Müller, geb. am 22. April 1984"


public boolean hatHeuteGeburtstag()

Liefert true, falls die Person am aktuellen Tag Geburtstag hat (d.h. das
Geburtsdatum jährt sich am aktuellen Tag).

c) Implementieren Sie eine Klasse Geburtstagskalender, die ein Feld von Personen
verwaltet. Die Anzahl der Personen, die der Geburtstagskalender maximal
speichern kann, soll beim Erzeugen eines Geburtstagskalender-Objekts
angegeben werden können.
Anmerkung: Die Daten sollen nicht permanent in einer Datei gespeichert,
sondern nur im Hauptspeicher gehalten werden!.
Die Klasse soll folgende öffentliche Komponenten haben:

public Geburtstagskalender(int maxAnzahl)
Konstruktor, der einen Geburtstagskalender erzeugt, der maxAnzahl viele
Personen speichern kann.

public void eintragen(Person person)
Trägt die angegebene Person in den Kalender ein. Es wird nicht geprüft, ob
die Person bereits eingetragen ist. Ist im Kalender kein Platz mehr, soll eine
Fehlermeldung ausgegeben werden.

public void alleAusgeben()
Gibt alle eingetragenen Personen aus (mit System.out.println()).

public void geburtstagskinderAusgeben()

Gibt alle Personen aus, die gerade Geburtstag haben.
Zum Test Ihrer Klassen finden Sie bei den Aufgabenblättern eine Klasse
GeburtstagsUI als "User Interface" für den Geburtstagskalender, mit der Sie
Daten eintragen und abfragen können.
 

TheNox21

Mitglied
Also legt public boolean jährtSichHeute() einfach nur fest welches datum "heute" ist? kannst mir erklären wie das dann mache mit diesen angaben
.util.Calendar cal = new java.util.GregorianCalendar();
int jahr = cal.get(java.util.Calendar.YEAR);
int monat = 1 + cal.get(java.util.Calendar.MONTH);
int tag = cal.get(java.util.Calendar.DAY_OF_MONTH);

bzw kann ich mich da irgendwo einlesen? da ich leider momentan keine ahnung habe wie ich die Aufgabe am sinnvolsten umsetze
 
K

kneitzel

Gast
Code:
public boolean jährtSichHeute()
Die Methode liefert true, falls sich das Datum heute jährt, d.h. Tag und
Monat des Datums mit Tag und Monat des aktuellen Datums
übereinstimmen.

Das ist doch die Kernaussage zu dieser Methode, die in der neu zu schreibenden Klasse Datum sein soll.

Und davor ist beschrieben, was Datum speichern soll. Um es Dir zu vereinfachen, ist der Code gegeben, wie Du das aktuelle Datum bekommen kannst. Also hast Du Tag und Monat im Datum und Du hast Code, der dir vom aktuellen Datum Tag und Monat gibt. Also sollte man die beiden vergleichen können.

Und dann gibt es eine Person, die eine Instanz von Datum hat. Also ein Geburtsdatum. Dieses Datum hat eine Methode, die Du aufrufen kannst ...
 

TheNox21

Mitglied
Code:
public boolean jährtSichHeute()
Die Methode liefert true, falls sich das Datum heute jährt, d.h. Tag und
Monat des Datums mit Tag und Monat des aktuellen Datums
übereinstimmen.

Das ist doch die Kernaussage zu dieser Methode, die in der neu zu schreibenden Klasse Datum sein soll.

Und davor ist beschrieben, was Datum speichern soll. Um es Dir zu vereinfachen, ist der Code gegeben, wie Du das aktuelle Datum bekommen kannst. Also hast Du Tag und Monat im Datum und Du hast Code, der dir vom aktuellen Datum Tag und Monat gibt. Also sollte man die beiden vergleichen können.

Und dann gibt es eine Person, die eine Instanz von Datum hat. Also ein Geburtsdatum. Dieses Datum hat eine Methode, die Du aufrufen kannst ...
Danke für die Antwort jetzt macht für alles um einiges mehr sinn :D
 

Neue Themen


Oben