De kalendermodule in Python heeft de kalenderklasse waarmee de berekeningen voor verschillende taken op basis van datum, maand en jaar kunnen worden uitgevoerd. Bovendien kunt u met de TextCalendar- en HTMLCalendar-klasse in Python de kalender bewerken en gebruiken volgens uw vereisten.
Laten we eens kijken wat we kunnen doen met Python Calendar.
Step1) Voer de code uit.
- Coderegel # 1: We beginnen met "kalender importeren" die alle klassen van deze module zal importeren.
- Coderegel # 3: c = calendar.TextCalendar (calendar.SUNDAY) vertelt de tolk om een tekstkalender te maken. Begin van de maand is zondag. In Python kun je de kalender opmaken, omdat je om te beginnen de dag van de maand kunt wijzigen
- Coderegel # 4: str = c.formatmonth (2025,1) We maken een kalender voor het jaar 2025, maand 1 - januari
- Coderegel # 5: print str zal de uitvoer afdrukken.
Laten we snel de waarde wijzigen van zondag in donderdag en de uitvoer controleren
Stap 2) U kunt de agenda ook in HTML-indeling afdrukken, deze functie is handig voor ontwikkelaars als ze wijzigingen willen aanbrengen in het uiterlijk van de agenda
Stap 3) Loops over de dagen van een maand door c.itermonthday (2025,4) te gebruiken, het zal het totale aantal dagen voor die maand ophalen.
- Wanneer u de code uitvoert om het totale aantal dagen voor een specifieke maand te krijgen, zeg "april", dan krijgt u 30 dagen in de uitvoer, maar u zult ook enkele nullen zien samen met deze dagen aan het begin en soms aan het einde ervan .
- Nullen in de uitvoer betekenen dat de dag van de week zich in een overlappende maand bevindt, wat betekent dat deze niet tot die maand behoort.
- Deze nullen verschijnt in de productie omdat in uw code dag (donderdag) hebben gezegd, dus als u belt functie "c.itermonthdays", zal het beginnen met tellen dagen van donderdag en uw donderdag mag niet beginnen met de datum 1 st april het zou kunnen zijn 28 ste of 29 ste van maart, dus als je de code uit te voeren zal beginnen met tellen dagen vanaf 28 ste maart en alle dagen daarna tot 1 st april. Deze dagen worden als nul geteld en in de uitvoer zie je deze nullen en hetzelfde geldt voor het einde van de maand.
- Dus behalve datum 1-30 zullen alle datums van zowel de vorige als de postmaand als nullen in de uitvoer verschijnen.
Stap 4) U kunt de gegevens van het lokale systeem ophalen, zoals maanden of weekdagen, enz
- De uitvoer hier laat zien dat we de naam van de maand uit het lokale systeem hebben afgedrukt. Op dezelfde manier kunt u ook de naam van de weekdagen ophalen, zoals hieronder wordt weergegeven
- De uitvoer is afhankelijk van het lokale systeem, stel dat als uw lokale systeem een ander land is, het de uitvoer zal geven volgens de lokale instellingen van dat land. Hier hebben we maanden dus het zal geen verschil zijn, maar als het een week of dag is, zal het zeker verschillen.
Stap 5) U kunt de lijst van de specifieke dag voor een heel jaar ophalen. Zo is er bijvoorbeeld elke eerste maandag van een week een controledag. U wilt voor elke maand de datum van de eerste maandag weten. U kunt deze code gebruiken
- mycal = calendar.monthcalendar (2025, maand) maakt een kalender voor de maand
- Stel variabelen week1 en week2 in op de eerste en tweede week van de kalender
- Controleer of week 1 maandag bevat, stel auditdag in
- Stel anders de controledag in als de eerste maandag in week 2
- De uitvoer toont de datum voor de eerste maandag die in die maand valt.
- De lengte van dit Cal-object wordt een bepaalde lengte, gebaseerd op het aantal weken in de maand. In ons geval zal het een of twee zijn, aangezien de eerste maandag van de week het vaakst in de eerste week valt, maar als dat niet het geval is, overweeg dan de tweede week. Laten we in detail zien waarom we ook de tweede week overwegen.
- Hier gebruiken we de constante maandag van de kalender, het kalenderobject geeft je constanten die staan voor zondag, maandag, dinsdag, enzovoort. We hebben deze eerder gezien. Dus als in week één de dag die wordt vertegenwoordigd door de constante van maandag niet gelijk is aan 0, onthoud dan dat nullen dagen zijn die bij een andere maand horen. Dus in dit geval, als het nul is, wordt het een maandag die tot de vorige maand behoort. Maar als de eerste maandag niet gelijk is aan 0, betekent dat dat mijn controledag in de week valt. Anders, als dat 0 is, valt de eerste maandag niet in de eerste week van de maand, maar in de tweede.
- Dus, dan zeg ik oké, stel mijn controledagvariabele in op de maandag die wordt weergegeven door week twee. Dus de controledag komt terug met wat de dag ook is voor de eerste of tweede week.
Hier is de volledige code
Python 2-voorbeeld
kalender importeren# Maak een agenda met platte tekstc = calendar.TextCalendar (kalender.THURSDAY)str = c.formatmonth (2025, 1, 0, 0)print str# Maak een kalender in HTML-indelinghc = calendar.HTMLCalendar (calendar.THURSDAY)str = hc.formatmonth (2025; 1)print str# loop over de dagen van een maand# nullen geven aan dat de dag van de week in een volgende maand of overlappende maand valtvoor i in c.itermonthdays (2025, 4):print i# De kalender kan informatie geven op basis van lokale namen van dagen en maanden (volledige en verkorte formulieren)voor naam in kalender.maand_naam:print naamvoor dag in kalender. dag_naam:print dag# dagen berekenen op basis van een regel: bijvoorbeeld een controledag op de tweede maandag van elke maand# Zoek uit welke dagen dat voor elke maand zouden zijn, we kunnen het script gebruiken zoals hier getoondvoor maand binnen bereik (1, 13):# Het haalt een lijst op met weken die de maand vertegenwoordigenmycal = calendar.monthcalendar (2025, maand)# De eerste MAANDAG moet binnen de eerste twee weken vallenweek1 = mycal [0]week2 = mycal [1]if week1 [kalender.MONDAY]! = 0:auditday = week1 [calendar.MONDAY]anders:# als de eerste MAANDAG niet in de eerste week valt, moet deze in de tweede week zijnauditday = week2 [calendar.MONDAY]print "% 10s% 2d"% (kalender.maand_naam [maand], auditdag)
Python 3-voorbeeld
kalender importeren# Maak een agenda met platte tekstc = calendar.TextCalendar (kalender.THURSDAY)str = c.formatmonth (2025, 1, 0, 0)print (str)# Maak een kalender in HTML-indelinghc = calendar.HTMLCalendar (calendar.THURSDAY)str = hc.formatmonth (2025; 1)print (str)# loop over de dagen van een maand# nullen geven aan dat de dag van de week in een volgende maand of overlappende maand valtvoor i in c.itermonthdays (2025, 4):print (i)# De kalender kan informatie geven op basis van lokale namen van dagen en maanden (volledige en verkorte formulieren)voor naam in kalender.maand_naam:print naam)voor dag in kalender. dag_naam:print (dag)# dagen berekenen op basis van een regel: bijvoorbeeld een controledag op de tweede maandag van elke maand# Zoek uit welke dagen dat voor elke maand zouden zijn, we kunnen het script gebruiken zoals hier getoondvoor maand binnen bereik (1, 13):# Het haalt een lijst op met weken die de maand vertegenwoordigenmycal = calendar.monthcalendar (2025, maand)# De eerste MAANDAG moet binnen de eerste twee weken vallenweek1 = mycal [0]week2 = mycal [1]if week1 [kalender.MONDAY]! = 0:auditday = week1 [calendar.MONDAY]anders:# als de eerste MAANDAG niet in de eerste week valt, moet deze in de tweede week zijnauditday = week2 [calendar.MONDAY]print ("% 10s% 2d"% (calendar.month_name [month], auditday))
Overzicht:
- In Python kun je de kalender opmaken zoals je wilt, omdat je de dag van de maand kunt wijzigen om te beginnen
- Druk de kalender af in HTML-indeling
- Haal de gegevens op uit het lokale systeem, zoals maanden of weekdagen
- Haal de lijst van de specifieke dag voor een heel jaar op