Eine Klasse für sich
Aufgabe
In dieser Aufgabe sollen Sie etwas fortgeschrittenere Klassen erstellen.
1.
Implementieren Sie einen neuen Datentypen Geburtstag als Klasse. Dieser neue Datentyp soll als Parameter den Tag, Monat und das Jahr des Geburtstags erwarten. Verwenden Sie Duck-Typing, um den Geburtstag im Format TT. MONATSNAME JJJJ auszugeben.
z. B.: es wird 15. Januar 2022 ausgegeben, wenn man print() auf eine Instanz der Klasse aufruft
2.
Implementieren Sie eine Funktion when_birthday als Teil des Datentyps. Diese soll die Anzahl an Tagen bis zum nächsten Geburtstag zurückgeben. Schaltjahre können ignoriert werden. Um das aktuelle Datum zu kriegen, können Sie die Klassenfunktion1 today aus dem datetime Modul nutzen, dazu einfach diesen Code nutzen:
Bonus (echt kniffilig!)
Überarbeiten Sie den Datentyp so, dass Schaltjahre aktzeptiert und in der when_birthday Funktion miteinberechnet werden. Sie können davon ausgehen, dass Personen, die an einem Schaltjahr geboren sind, ihren Geburtstag an nicht-Schaltjahren am 28. Feb. feiern.
Schauen Sie sich die Aufgabe 200 Punkte/if-Abfrage/Jäger des verlorenen Tages an, falls Sie nicht wissen, wie man
bestimmt, ob ein bestimmtes Jahr ein Schaltjahr ist oder nicht.
-
eine Klassenfunktion ist eine spezielle Art von Funktion, welche über der Klasse selbst aufgerufen werden kann. ↩︎