Python Kalendermodule met voorbeeld

⚡ Slimme samenvatting

De kalendermodule in Python Genereert tekst- en HTML-kalenders met behulp van de klassen TextCalendar en HTMLCalendar. Het voert datumberekeningen uit op basis van de dag, maand en het jaar, en stelt u in staat de begindag van de week voor elke maand aan te passen.

  • 🔘 Twee soorten kalenders: De klassen TextCalendar en HTMLCalendar genereren kalenders in platte tekst en voor het web, voor een gekozen maand of jaar.
  • ☑️ Eerste werkdag: Constanten zoals calendar.SUNDAY en de methode setfirstweekday() bepalen op welke dag elke week begint.
  • Herhaal dagen: De itermonthdays()-methode doorloopt een maand en markeert overlappingen.ping dagen van aangrenzende maanden als nullen.
  • 🧪 Hulpfuncties: Functies zoals isleap(), weekday() en monthrange() beantwoorden veelvoorkomende datumvragen zonder dat er extra bibliotheken nodig zijn.
  • Standaardbibliotheek: De kalendermodule wordt meegeleverd. PythonHet hoeft dus niet geïnstalleerd te worden voordat je het importeert en gebruikt.
  • 🤖 AI-workflows: Machine learning-pipelines gebruiken kalenderkenmerken zoals weekdag- en schrikkeljaarmarkeringen voor tijdreeksvoorspellingen.

Python Kalendermodule

De kalendermodule in Python Het bevat een kalenderklasse waarmee berekeningen voor diverse taken kunnen worden uitgevoerd op basis van de datum, maand en het jaar. Bovendien biedt het de mogelijkheid om... Tekstkalender en HTML-kalender lessen in Python Hiermee kun je de kalender bewerken en gebruiken naar eigen wens. Laten we eens kijken wat we ermee kunnen doen. Python kalender.

Wat is de kalendermodule in Python?

De kalendermodule deel van de Python Het is een standaardbibliotheek, dus direct beschikbaar zonder installatie. Het bundelt verschillende klassen en hulpfuncties die kalenders bouwen en veelvoorkomende datumvragen beantwoorden, zoals op welke weekdag een datum valt of hoeveel dagen een maand telt.

De module biedt vijf hoofdklassen:

  • Agenda is een basisklasse die de gegevens levert waarmee de andere kalenders worden opgebouwd.
  • Tekstkalender Produceert kalenders in platte tekst voor een maand of een volledig jaar.
  • HTML-kalender Genereert kalenders als HTML-tabellen voor webpagina's.
  • LocaleTextCalendar Dit is een tekstkalender die de dag- en maandnamen van een gekozen locatie gebruikt.
  • LocaleHTMLCalendar is het HTML-equivalent dat rekening houdt met een gekozen landinstelling.

Standaard begint een kalenderweek op MondayVolgens de Europese conventie kunt u de eerste dag wijzigen met behulp van een constante zoals calendar.SUNDAY, zoals in de onderstaande voorbeelden wordt getoond.

Hoe print je een tekstkalender? Python

Stap 1) Voer de code uit.

Print een tekstkalender in Python

  • Code Regel 1: We beginnen met "import calendar", waarmee alle klassen van deze module worden geïmporteerd.
  • Code Regel 3: c = calendar.TextCalendar(calendar.SUNDAY) geeft de interpreter de opdracht om een ​​tekstkalender te maken. De maand begint op zondag. PythonJe kunt de kalender naar wens indelen en de dag waarop de maand begint wijzigen.
  • Code Regel 4: str= c.formatmonth(2025,1) maakt een kalender aan voor het jaar 2025, maand 1 – januari.
  • Code Regel 5: print str zal de uitvoer afdrukken.

Laten we de waarde snel van zondag naar donderdag veranderen en het resultaat controleren.

Wijzig de eerste weekdag van een Python kalender

Hoe print je een HTML-kalender? Python

Stap 2) Je kunt de kalender ook afdrukken in HTML-formaat. Deze functie is handig voor ontwikkelaars die het uiterlijk van de kalender willen aanpassen.

Print een HTML-kalender in Python

Hoe je de dagen van een maand kunt herhalen

Stap 3) Passanten Je kunt het totale aantal dagen van een maand berekenen met behulp van c.itermonthdays(2025,4); hiermee krijg je het totale aantal dagen van die maand.

Doorloop de dagen van een maand in een lus. Python

  • Wanneer je de code uitvoert om het totale aantal dagen voor een specifieke maand, bijvoorbeeld "april", te berekenen, krijg je 30 dagen als resultaat. Je ziet echter ook enkele nullen aan het begin en soms aan het einde van deze dagen.
  • Nullen in de uitvoer betekenen dat de dag van de week zich in een overlap bevindt.ping maand, wat betekent dat het niet bij die maand hoort.
  • Deze nullen verschijnen in de uitvoer omdat je in je code een dag hebt genoemd (donderdag). Wanneer je de functie "c.itermonthdays" aanroept, begint deze met tellen vanaf donderdag. Jouw donderdag valt mogelijk niet op 1 april, maar op 28 of 29 maart. De code begint dus met tellen vanaf 28 maart en alle dagen daarna tot en met 1 april. Deze dagen worden als nullen geteld en dat zie je terug in de uitvoer. Hetzelfde geldt voor het einde van de maand.
  • Met uitzondering van de datums 1 t/m 30, worden alle datums van de vorige en de volgende maand in de uitvoer als nullen weergegeven.

Hoe haal ik de namen van de maand en de weekdag op uit het lokale systeem?

Stap 4) Je kunt gegevens ophalen uit het lokale systeem, zoals maanden of weekdagen.

Haal de maandnamen op uit het lokale systeem in Python

  • De uitvoer laat zien dat we de maandnamen van het lokale systeem hebben afgedrukt. Op dezelfde manier kunt u ook de namen van de weekdagen ophalen, zoals hieronder wordt weergegeven.
  • De uitvoer is afhankelijk van het lokale systeem. Als uw lokale systeem is ingesteld op een ander land, geeft het de uitvoer weer volgens de lokale instellingen van dat land. In dit geval gaat het om maanden, dus dat maakt geen verschil, maar voor een week of een dag zal het zeker wel verschillen.

Haal de namen van de weekdagen op uit het lokale systeem in Python

Hoe vind je een specifieke dag voor het hele jaar?

Stap 5) U kunt de lijst met auditdagen voor een specifieke dag gedurende een heel jaar opvragen. Er is bijvoorbeeld elke eerste van de maand een auditdag. Monday van een week. Stel dat je de datum van de eerste wilt weten. Monday Voor elke maand. Je kunt deze code gebruiken.

Zoek een specifieke dag voor het hele jaar in Python

  • mycal = calendar.monthcalendar(2025, month) maakt een kalender voor de betreffende maand aan.
  • Stel de variabelen week1 en week2 in op de eerste en tweede week van de kalender.
  • Controleer of week 1 het volgende bevat: Monday en de auditdatum vaststellen.
  • Stel anders de auditdag in als de eerste. Monday in week 2.
  • De uitvoer toont de datum voor de eerste Monday dat valt in die maand.
  • De lengte van dit Cal-object hangt af van het aantal weken in een maand. In ons geval is dat één of twee, zoals de eerste Monday De beste week valt meestal in de eerste week, maar zo niet, dan kijken we naar de tweede week. Laten we eens nader bekijken waarom we ook de tweede week meenemen.
  • Hier gebruiken we de kalenderconstante. MondayHet kalenderobject geeft je constanten die zondag vertegenwoordigen. Monday, dinsdag, enzovoort. Als in week één de dag die wordt vertegenwoordigd door de Monday De constante is niet gelijk aan 0 – onthoud dat nullen dagen betekenen die bij een andere maand horen – dan dat Monday behoort tot deze maand en de auditdag valt binnen de eerste week. Als het 0 is, dan is de eerste Monday Als het niet in de eerste week van de maand valt, moet het in de tweede week zijn.
  • In dat geval stellen we de variabele voor de auditdag in op de Monday Dit wordt weergegeven door week twee. De auditdag komt overeen met de datum van de eerste of tweede week.

Volledige Python Agenda Code Voorbeeld

Hier is de volledige code.

Python 2 Voorbeeld

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 Voorbeeld

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))

Nuttige functies in de Python kalendermodule

Naast de bovenstaande stappen bevat de kalendermodule een aantal handige functies die werken zonder een klasse-instantie aan te maken:

  • kalender.kalender(jaar) retourneert een kalender voor een volledig jaar als een tekenreeks over meerdere regels, terwijl kalender.prcal(jaar) print het direct.
  • kalender.maand(jaar, maand) retourneert één maand als tekst, en kalender.prmaand(jaar, maand) drukt het af.
  • kalender.maandkalender(jaar, maand) Retourneert de maand als een lijst met weekrijen, waarbij elke dag een geheel getal is en dagen buiten de maand 0 zijn.

Deze functies maken het mogelijk om snel een kalender in één regel weer te geven, wat handig is in scripts en interactieve sessies waar je de extra controle van de TextCalendar- of HTMLCalendar-klassen niet nodig hebt.

Hoe controleer je of het een schrikjaar is? Python

De kalendermodule kan ook aangeven of een jaar een schrikjaar is. Dit is belangrijk omdat februari in zulke jaren 29 dagen heeft in plaats van 28. Twee functies regelen dit:

  • kalender.eiland(jaar) Retourneert True wanneer het een schrikjaar is en False anders.
  • kalender.schrikkeldagen(y1, y2) Geeft het aantal schrikjaren terug in de periode van y1 tot en met, maar exclusief, y2.

Calendar.isleap(2024) geeft bijvoorbeeld True terug, terwijl calendar.isleap(2025) False teruggeeft. Controle op schrikjaren is handig wanneer je datums valideert, terugkerende evenementen plant of het exacte aantal dagen tussen twee jaren wilt berekenen.

Veelgestelde vragen

De kalendermodule richt zich op het genereren en analyseren van kalenders: tekst, HTML, weekdagnummers en controle op schrikjaren. De datum- en tijdmodule verwerkt specifieke tijdstempels, rekenkundige bewerkingen en de opmaak van individuele datums en tijden. Veel programma's importeren beide modules en gebruiken ze samen.

Roep calendar.weekday(year, month, day) aan. Deze functie retourneert een geheel getal van 0 (Monday) tot 6 (zondag). Combineer dit met calendar.day_name om dat nummer om te zetten in een leesbaar label zoals Monday of vrijdag.

Gebruik calendar.monthrange(year, month). Deze functie retourneert een tuple waarvan de tweede waarde het aantal dagen is, dus calendar.monthrange(2025, 2)[1] retourneert 28. De eerste waarde is de weekdag van de eerste dag van die maand.

Gebruik calendar.LocaleTextCalendar of calendar.LocaleHTMLCalendar en geef een landinstelling op, bijvoorbeeld "fr_FR". De opgemaakte maand geeft vervolgens de namen van de weekdagen en maanden weer in die taal, mits de landinstelling op het besturingssysteem is geïnstalleerd.

Genereer de opmaak met HTMLCalendar().formatmonth(2025, 1), open vervolgens een bestand in schrijfmodus en roep write() aan met die tekenreeks. Door het bestand met de extensie .html op te slaan, kan elke browser de opgemaakte kalender weergeven.

Standaard begint de week op MondayVolgens de Europese conventie. Roep calendar.setfirstweekday(calendar.SUNDAY) aan, of geef een constante zoals calendar.SUNDAY door aan een TextCalendar, om de week op een andere dag te laten beginnen.

Datapipelines gebruiken kalenderfuncties om kenmerken zoals de dag van de week, het weeknummer en schrikkeljaarmarkeringen af ​​te leiden uit ruwe datums. Deze gecreëerde kalenderkenmerken helpen machine learning-modellen om wekelijkse en seizoensgebonden patronen in tijdreeksvoorspellingen vast te leggen.

Ja. GitHub Copilot en AI-assistenten kunnen codefragmenten voor kalendermodules schrijven – zoals het afdrukken van maanden, het controleren van schrikjaren of het maken van een HTML-kalender – op basis van een korte opmerking. RevBekijk de uitvoer, want indexering op basis van weekdagen en instellingen voor de eerste dag kunnen gemakkelijk door elkaar gehaald worden.

Vat dit bericht samen met: