import Foundation
/* Bei den Jahreszahlen handelt es sich um ganzzahlige Zahlen. Zum Speicher der
Jahreszahl wird die Variable jahr deklariert. */
var jahr : Int
/* Hierbei geht es darum zu entscheiden, ob das Jahr ein Schaltjahr ist oder
nicht, daher wird für das Ergebnis eine boolesche Variable verwendet, da
diese nur die Werte richtig oder falsch besitzt. Im Folgenden wird daher
die boolesche Variable schaltjahr deklariert. */
var schaltjahr : Boolean
print("Geben Sie die Jahreszahl an:")
jahr = Int(readLine()!)!
// Im ersten Schritt wird geprüft, ob die Jahreszahl größer gleich 0 ist.
if jahr <= 0 {
print("Bitte geben Sie nur eine Jahreszahl größer 0 an.")
} else {
/* Um zu bestimmen, ob ein Jahr ein Schaltjahr ist, gibt es folgende
Möglichkeiten.
- Ein Jahr ist ein Schaltjahr, wenn die Jahreszahl durch 4 teilbar, aber
nicht durch 100 teilbar ist.
- Ein Jahr ist auch ein Schaltjahr, wenn die Jahreszahl durch 400 teilbar
ist.
Das lässt formal so schreiben:
Wenn die Jahreszahl durch 4 teilbar ist UND nicht durch 100 ODER wenn die
Jahreszahl durch 400 teilbar ist.
*/
/* Vereinfacht formuliert, von den Jahrhundert Jahreszahlen abgesehen
(teilbar durch 100), ist jedes vierte Jahr (Teilbarkeit durch vier) ein
Schaltjahr. Und bei den Jahrhunderten Jahreszahlen ist nur jedes vierte
(Teilbarkeit durch 400) ein Schaltjahr. */
// Zum Beispiel war das Jahr 1900 kein Schaltjahr, 2000 hingegen war ein Schaltjahr.
/* In der nachfolgenden Fallunterscheidung wird die Teilbarkeit mithilfe
der Modulo Funktion geprüft. Um eine spätere Verwendung, zum Beispiel als
Rückgabewert zu ermöglichen, wird das Ergebnis der Fallunterscheidung in
der Variable schaltjahr gespeichert. */
if jahr % 4 == 0 && jahr % 100 != 0 || jahr % 400 == 0 {
schaltjahr = true
print("Das angebene Jahr ist ein Schaltjahr.")
} else {
schaltjahr = false
print("Das angebene Jahr ist kein Schaltjahr.")
}
}