Date

Implementieren Sie die Klassen Date. Sie soll ganzzahlige konstante Felder mit Namen day, month und year haben.

Der Konstrukor lässt auch zu, dass man unsinnige Datumsokjekte erzeugt, wie zum Beispiel einen 32.12.1812 ider einen 1.13.1714. In Kotlin gibt es eine Anweisung assert. Diese bekommt einen Ausdruck, der zu einen Wahrheitswert auswertet als Argument. Starten Sie Ihr Kotlinprogramm mit der zusätzlichen Option -ea (oder -enableassertions) auf der Kommandozeile gestartet, so werden diese boolchen Ausdrücke während der Laufzeit ausgewertet. Wertet einer zu false aus, dann bricht das Programm ab.
Ergänzen Sie die Klasse Date jetzt einen Initialisierungsblock mit assert-Anweisungen, die zumindest checken, weder Monat noch Tag kleiner als 1, sowie kein Tag größer 31 und kein Monatswert größer 12 zum Initialisieren verwendet wird.