Python KALENDER Tutorial mit Beispiel
Kalendermodul in Python verfügt über die Kalenderklasse, die Berechnungen für verschiedene Aufgaben basierend auf Datum, Monat und Jahr ermöglicht. Darüber hinaus gibt es die Klassen TextCalendar und HTMLCalendar in Python ermöglicht Ihnen, den Kalender zu bearbeiten und nach Bedarf zu verwenden.
Mal sehen, was wir damit machen können Python Calendar.
Schritt 1) Führen Sie den Code aus.
- Codezeile Nr. 1: Wir beginnen mit „Kalender importieren“, wodurch alle Klassen dieses Moduls importiert werden.
- Codezeile Nr. 3: c= calendar.TextCalendar(calendar.SUNDAY) weist den Interpreter an, einen Textkalender zu erstellen. Der Monatsbeginn ist Sonntag. In Python, können Sie den Kalender formatieren, indem Sie den Tag des Monats ändern, um mit zu beginnen
- Codezeile Nr. 4: str= c.formatmonth(2025,1) Wir erstellen einen Kalender für das Jahr 2025, Monat 1 – Januar
- Codezeile Nr. 5: print str druckt die Ausgabe.
Lassen Sie uns schnell den Wert von Sonntag auf Donnerstag ändern und die Ausgabe überprüfen
Schritt 2) Sie können den Kalender auch im HTML-Format ausdrucken. Diese Funktion ist für Entwickler hilfreich, wenn sie Änderungen am Erscheinungsbild des Kalenders vornehmen möchten
Schritt 3) Schlaufen Über die Tage eines Monats wird mithilfe von c.itermonthday (2025,4) die Gesamtzahl der Tage für diesen Monat abgerufen.
- Wenn Sie den Code ausführen, um die Gesamtzahl der Tage für einen bestimmten Monat zu erhalten, sagen wir „April“, dann erhalten Sie 30 Tage in der Ausgabe, aber Sie werden neben diesen Tagen auch einige Nullen am Anfang und manchmal am Ende sehen .
- Nullen in der Ausgabe bedeuten, dass der Wochentag in einem überlappenden Monat liegt, also nicht zu diesem Monat gehört.
- Diese Nullen erscheinen in der Ausgabe, weil Sie in Ihrem Code den Tag (Donnerstag) angegeben haben. Wenn Sie also die Funktion „c.itermonthdays“ aufrufen, beginnt die Zählung der Tage ab Donnerstag und Ihr Donnerstag beginnt möglicherweise nicht mit Datum 1st April könnte es der 28. seinth oder 29. Junith März, wenn Sie also den Code ausführen, beginnt er mit der Zählung der Tage ab 28th März und alle Tage danach bis 1st April. Diese Tage werden als Null gezählt und in der Ausgabe sehen Sie diese Nullen. Dasselbe gilt auch für das Monatsende.
- Mit Ausnahme des Datums 1-30 werden also alle Daten des Vor- und Nachmonats in der Ausgabe als Nullen angezeigt.
Schritt 4) Sie können die Daten vom lokalen System abrufen, z. B. Monate oder Wochentage usw
- Die Ausgabe hier zeigt, dass wir den Monatsnamen vom lokalen System ausgedruckt haben. Ebenso können Sie den Wochentagsnamen wie unten gezeigt abrufen
-
Die Ausgabe hängt vom lokalen System ab. Wenn es sich bei Ihrem lokalen System beispielsweise um ein anderes Land handelt, wird die Ausgabe gemäß den lokalen Einstellungen dieses Landes ausgegeben. Hier haben wir Monate, also wird es keinen Unterschied machen, aber wenn es eine Woche oder ein Tag ist, wird es sicherlich ein Unterschied sein.
Schritt 5) Sie können die Liste des jeweiligen Tages für ein ganzes Jahr abrufen. Beispielsweise gibt es an jedem Ersten einen Prüfungstag Monday einer Woche. Sie möchten zunächst das Datum wissen Monday für jeden Monat. Sie können diesen Code verwenden
- mycal = Calendar.monthcalendar(2025, Monat) erstellt einen Kalender für den Monat
- Setzen Sie die Variablen Woche1 und Woche2 auf die erste und zweite Woche des Kalenders
- Überprüfen Sie, ob Woche 1 enthält Monday, Audit-Tag festlegen
- Andernfalls legen Sie den Audit-Tag als ersten fest Monday in Woche 2
- Die Ausgabe zeigt das Datum für den ersten Monday das fällt in diesen Monat.
- Die Länge dieses Cal-Objekts wird eine bestimmte Länge haben, basierend auf der Anzahl der Wochen im Monat. In unserem Fall werden es zunächst ein oder zwei sein Monday Der Woche wird es am häufigsten in der ersten Woche sein, wenn nicht, sollten Sie die zweite Woche in Betracht ziehen. Sehen wir uns im Detail an, warum wir auch die zweite Woche in Betracht ziehen.
- Hier verwenden wir die Konstante des Kalenders Monday, das Kalenderobjekt gibt Ihnen Konstanten, die den Sonntag darstellen, Monday, Dienstag, so weiter, so weiter. Wir haben diese schon einmal gesehen. Wenn also in der ersten Woche der Tag, der durch dargestellt wird Monday Konstante ist ungleich 0. Beachten Sie, dass Nullen Tage bedeuten, die zu einem anderen Monat gehören. Wenn es also in diesem Fall Null ist, wird es ein sein Monday das gehört zum Vormonat. Aber wenn der erste Monday ungleich 0 ist, bedeutet das, dass mein Prüfungstag in der ersten Woche liegt. Andernfalls, wenn das 0 ist, dann der erste Monday ist nicht in der ersten Woche des Monats, es muss in der zweiten sein.
- Also sage ich dann „Okay, setze meine Audit-Tag-Variable auf „ Monday vertreten durch Woche zwei. Der Audit-Tag wird also zurückkommen, unabhängig davon, was der Tag der ersten oder zweiten Woche ist.
Hier ist der vollständige Code
Python 2 Beispiel
import calendar # Create a plain text calendar c = calendar.TextCalendar(calendar.THURSDAY) str = c.formatmonth(2025, 1, 0, 0) print str # Create an HTML formatted calendar hc = calendar.HTMLCalendar(calendar.THURSDAY) str = hc.formatmonth(2025, 1) print str # loop over the days of a month # zeroes indicate that the day of the week is in a next month or overlapping month for i in c.itermonthdays(2025, 4): print i # The calendar can give info based on local such a names of days and months (full and abbreviated forms) for name in calendar.month_name: print name for day in calendar.day_name: print day # calculate days based on a rule: For instance an audit day on the second Monday of every month # Figure out what days that would be for each month, we can use the script as shown here for month in range(1, 13): # It retrieves a list of weeks that represent the month mycal = calendar.monthcalendar(2025, month) # The first MONDAY has to be within the first two weeks week1 = mycal[0] week2 = mycal[1] if week1[calendar.MONDAY] != 0: auditday = week1[calendar.MONDAY] else: # if the first MONDAY isn't in the first week, it must be in the second week auditday = week2[calendar.MONDAY] print "%10s %2d" % (calendar.month_name[month], auditday)
Python 3 Beispiel
import calendar # Create a plain text calendar c = calendar.TextCalendar(calendar.THURSDAY) str = c.formatmonth(2025, 1, 0, 0) print(str) # Create an HTML formatted calendar hc = calendar.HTMLCalendar(calendar.THURSDAY) str = hc.formatmonth(2025, 1) print(str) # loop over the days of a month # zeroes indicate that the day of the week is in a next month or overlapping month for i in c.itermonthdays(2025, 4): print(i) # The calendar can give info based on local such a names of days and months (full and abbreviated forms) for name in calendar.month_name: print(name) for day in calendar.day_name: print(day) # calculate days based on a rule: For instance an audit day on the second Monday of every month # Figure out what days that would be for each month, we can use the script as shown here for month in range(1, 13): # It retrieves a list of weeks that represent the month mycal = calendar.monthcalendar(2025, month) # The first MONDAY has to be within the first two weeks week1 = mycal[0] week2 = mycal[1] if week1[calendar.MONDAY] != 0: auditday = week1[calendar.MONDAY] else: # if the first MONDAY isn't in the first week, it must be in the second week auditday = week2[calendar.MONDAY] print("%10s %2d" % (calendar.month_name[month], auditday))
Zusammenfassung
- In Python, können Sie den Kalender nach Ihren Wünschen formatieren, indem Sie den Tag des Monats ändern, an dem
- Drucken Sie den Kalender im HTML-Format aus
- Rufen Sie die Daten aus dem lokalen System ab, z. B. Monate oder Wochentage
- Rufen Sie die Liste des spezifischen Tages für ein ganzes Jahr ab