Schaltjahr in Python bestimmen

Muhammad Adnan Ashraf 21 Juni 2023
  1. Einführung in das Schaltjahr
  2. Bestimmen Sie das Schaltjahr durch ein einfaches if-else-Konstrukt in Python
  3. Bestimmen Sie das Schaltjahr durch das Modul Calendar in Python
  4. Schaltjahr durch den Bedingungsoperator bestimmen Mit dem Calendar-Modul in Python
Schaltjahr in Python bestimmen

Dieser Artikel behandelt die Terminologie, die als Schaltjahr bekannt ist. Wir werden auch eine Python-Implementierung sehen, um zu prüfen, ob ein bestimmtes Jahr ein Schaltjahr ist oder nicht.

Einführung in das Schaltjahr

Die Erde braucht für ihren Umlauf um die Sonne 6 Stunden mehr als 365 Tage.

Angenommen, wir fügen im Februar keinen zusätzlichen Tag hinzu (d. h. den 29.). In diesem Fall wird es schließlich dazu führen, dass wir viele religiöse und politische Ereignisse zu verschiedenen Jahreszeiten sehen (obwohl die Daten gleich bleiben).

Es schlägt vor, dass wir jedem 4. Jahr einen Tag als 6 x 4 = 24 hinzufügen. Es ist jedoch nicht so einfach, weil die zusätzlichen 6 Stunden nicht genau sind.

Die Erde vollendet ihre Umdrehung in ungefähr 365 Tagen, 5 Stunden, 48 Minuten und 46 Sekunden, was einen Unterschied von 11 Minuten und 14 Sekunden gegenüber der im vorherigen Abschnitt diskutierten Aussage macht. Dieser subtile Unterschied veranlasst uns, komplexere Berechnungen durchzuführen, um Daten in derselben Saison zu halten.

Daher sagen wir, dass ein Jahr die folgenden Bedingungen erfüllen muss, um sich für ein Schaltjahr zu qualifizieren:

  1. Direkte Disqualifikation: Wenn das betrachtete Jahr nicht ohne Rest durch 4 teilbar ist, qualifiziert es sich nicht für ein Schaltjahr. Beispielsweise ist 2077 nicht ohne Rest durch 4 teilbar (also 2077 % 4 != 0), also kein Schaltjahr.
  2. Wenn das Jahr durch 4 ohne Rest teilbar, aber nicht durch 100 ohne Rest teilbar ist, dann ist das Jahr das Schaltjahr. Zum Beispiel ist 2024 korrekt durch 4 teilbar, aber nicht durch 100 (d. h. 2024 % 4 == 0 und 2024 % 100 != 0), sodass es sich als Schaltjahr qualifiziert.
  3. Wenn die Zahl durch 4 und 100 ohne Rest teilbar ist, prüfen wir, ob das Jahr auch durch 400 teilbar ist. Wenn ja, ist das Jahr das Schaltjahr; Andernfalls ist das Jahr kein Schaltjahr.

Zum Beispiel ist 4000 ohne Rest durch 4, 100 und 400 teilbar, also ist es ein Schaltjahr. Wenn Jahr % 4 == 0, Jahr % 100 == 0 und Jahr % 400 == 0, dann ist das Jahr rechnerisch ein Schaltjahr.

Der folgende Abschnitt enthält eine vollständige Python-Implementierung, die bestimmt, ob ein Jahr ein Schaltjahr ist oder nicht. Nachdem wir uns ein grundlegendes Verständnis des Schaltjahrkonzepts angeeignet haben, schauen wir uns verschiedene Implementierungen an, um zu überprüfen, ob ein Jahr ein Schaltjahr ist oder nicht.

Bestimmen Sie das Schaltjahr durch ein einfaches if-else-Konstrukt in Python

Die folgende Implementierung verwendet ein einfaches if-else-Konstrukt, um ein Schaltjahr zu bestimmen.

  1. Für eine gegebene Jahreseingabe prüfen wir zuerst, ob die zweite Bedingung erfüllt ist; wenn ja, zeigen wir unser positives Urteil (d. h. das Jahr ist ein Schaltjahr).
  2. Wenn das eingegebene Jahr die in Zeile 3 angegebene zusammengesetzte Bedingung nicht erfüllt, prüfen wir, ob das eingegebene Jahr der dritten Bedingung folgt, und zeigen unsere Entscheidung entsprechend an.
  3. Wenn nun das Jahr keiner der oben genannten Bedingungen folgt, schließen wir daraus, dass das Jahr kein Schaltjahr ist.

Beispielcode:

yearValue = int(input("Enter a year: "))
# here, yearValue means the year we want to check.
if yearValue % 4 == 0 and yearValue % 100 != 0:  # condition 2
    print(yearValue, "is a leap year")
elif yearValue % 4 == 0 and yearValue % 100 == 0:  # condition 3
    if yearValue % 400 == 0:
        print(yearValue, "qualifies as a leap year")
    else:
        print(yearValue, "does not qualify as a leap year")
else:
    print(yearValue, "does not qualify as a leap year")  # Condition 1

Jetzt werden wir unser Programm für jede der drei Bedingungen auswerten, indem wir verschiedene Eingabewerte verwenden.

Ausgabe Bewertung der 1. Bedingung:

Enter a year: 2027
2027 does not qualify as a leap year

Ausgang Bewertung der 2. Bedingung:

Enter a year: 2024
2024 is a leap year

Ausgabe zur Bewertung der 3. Bedingung:

Enter a year: 4000
4000 qualifies as a leap year

Bestimmen Sie das Schaltjahr durch das Modul Calendar in Python

Pythons Kalender-Modul ist eines der zuverlässigsten Werkzeuge, um Berechnungen mit Datumsangaben durchzuführen. Es folgt der europäischen Konvention (d. h. zeigt Montag als ersten Tag der Woche an) und dient als Pythons Äquivalent zum Unix-Programm cal.

Es bietet mehrere Dienstprogramme, um Datumseingaben und -manipulationen vorzunehmen (einschließlich der Anzeige des Kalenders). Eine detaillierte Auflistung der Funktionalitäten des Moduls Kalender finden Sie hier.

Die Methode isleap() ist eine der Funktionalitäten des Moduls calendar. Schauen wir uns das folgende Beispiel an, um die Verwendung des calendar-Moduls und der isleap()-Methode zu verstehen.

Beispielcode:

import calendar

yearValue = int(input("Enter a year: "))
if calendar.isleap(yearValue):
    print(yearValue, "qualifies as a leap year")
else:
    print(yearValue, "does not qualify as a leap year")

Die erste Zeile des obigen Codes importiert das Kalender-Modul. Die zweite Zeile nimmt eine ganzzahlige Jahreseingabe vom Benutzer und weist sie der Variablen yearValue zu.

Die Methode calendar.isLeap() nimmt einen ganzzahligen Jahreswert und gibt true oder false zurück, wenn das Argument ein Schaltjahr ist oder nicht. Daher können wir Entscheidungsaussagen anwenden, um unsere personalisierten Nachrichten anzuzeigen.

Testen wir diesen Code, indem wir das Programm für verschiedene Jahre ausführen:

Erster Lauf:

Enter a year: 2027
2027 does not qualify as a leap year

Zweiter Lauf:

Enter a year: 2024
2024 qualifies as a leap year

Dritter Lauf:

Enter a year: 4000
4000 qualifies as a leap year

Schaltjahr durch den Bedingungsoperator bestimmen Mit dem Calendar-Modul in Python

Wir können den Bedingungsoperator mit dem Kalender-Modul kombinieren, um dasselbe zu erreichen. Der Bedingungsoperator ist ein ternäres Bedingungskonstrukt, das als Ersatz für ein einfaches if-else-Konstrukt verwendet werden kann.

Beispielcode:

import calendar

y = int(input("Enter a year: "))

# [statement_on_True] if [condition] else [statement_on_false]
print(y, "is a leap year") if (calendar.isleap(y)) else print(y, "is not a leap year")

Der obige Code verwendet den bedingten Operator, um anzuzeigen, ob ein Jahr ein Schaltjahr ist oder nicht. Die Syntax des Bedingungsoperators ist im Code in Zeile #4 gut kommentiert.

Ausgaben für mehrere Läufe:

Erster Lauf:

Enter a year: 2027
2027 is not a leap year

Zweiter Lauf:

Enter a year: 2024
2024 is a leap year

Dritter Lauf:

Enter a year: 4000
4000 is a leap year

Wenn wir die Verwendung des Moduls Kalender überspringen möchten, können wir einfache zusammengesetzte Bedingungen in Verbindung mit dem ternären Bedingungsoperator verwenden.

Darüber hinaus existieren viele weitere Möglichkeiten, das gewünschte Programm zu implementieren (z. B. match-case-Konstrukt). Wir überlassen dies Geeks, um verschiedene Variationen zu erkunden und umzusetzen.

Verwandter Artikel - Python DateTime