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








