Kalendermodulen i Python har kalenderklassen som tillåter beräkningar för olika uppgifter baserat på datum, månad och år. Utöver det tillåter klassen TextCalendar och HTMLCalendar i Python dig att redigera kalendern och använda enligt dina krav.
Låt oss se vad vi kan göra med Python Calendar.
Steg 1) Kör koden.
- Kodrad # 1: Vi börjar med "importkalender" som importerar alla klasser i denna modul.
- Kodrad # 3: c = kalender.TextCalendar (kalender.SÖNDAG) säger till tolk att skapa en textkalender. Månadens början är söndag. I Python kan du formatera kalendern eftersom du kan ändra dagen i månaden till att börja med
- Kodrad # 4: str = c.formatmonth (2025,1) Vi skapar kalender för året 2025, månad 1 - januari
- Kodrad # 5: utskrift str skriver ut utdata.
Låt oss snabbt ändra värdet från söndag till torsdag och kontrollera utdata
Steg 2) Du kan också skriva ut kalendern i HTML-format, den här funktionen är till hjälp för utvecklare om de vill göra några ändringar i utseendet på kalendern
Steg 3) Slingor under dagarna i en månad med c.itermonthday (2025,4), det hämtar det totala antalet dagar för den månaden.
- När du kör koden för att få det totala antalet dagar för en viss månad säg "april" kommer du att få 30 dagar i utdata men du kommer också att se några nollor tillsammans med dessa dagar i början och ibland i slutet av den .
- Nollor i produktionen betyder att veckodagen är i en överlappande månad, vilket innebär att den inte tillhör den månaden.
- Dessa nollor uppträder i produktionen, eftersom det i din kod som du har nämnt dag (torsdag), så när du ringer funktionen "c.itermonthdays", kommer det att börja räkna dagar från torsdag och din torsdag får inte börja med datum 1 st april det kan vara 28 : e eller 29 : e mars, så när du kör koden det börjar räkna dagar från 28 : e mars och alla dagar efter att till en st april. Dessa dagar kommer att räknas som noll och i utgången kommer du att se dessa nollor och detsamma gäller i slutet av månaden.
- Så förutom datum 1-30 kommer alla datum från föregående och efter månad att visas i utdata som nollor.
Steg 4) Du kan hämta data från det lokala systemet, som månader eller vardagar, etc.
- Resultatet här visar att vi har skrivit ut månadsnamnet från det lokala systemet. På samma sätt kan du också hämta vardagens namn som visas nedan
- Utgången beror på det lokala systemet, antag att om ditt lokala system är några andra länder kommer det att ge utdata enligt de lokala inställningarna i det landet. Här har vi månader så det blir ingen skillnad men om det är en vecka eller dag kommer det verkligen att skilja sig.
Steg 5) Du kan hämta listan över den specifika dagen under ett helt år. Det finns till exempel en revisionsdag varje första måndag i veckan. Du vill veta datumet för första måndagen för varje månad. Du kan använda den här koden
- mycal = calendar.monthcalendar (2025, månad) skapar kalender för månaden
- Ställ in variabler vecka1 och vecka2 till den första och andra veckan i kalendern
- Kontrollera om vecka 1 innehåller måndag, ställ in granskningsdagen
- Annars ställde revisionsdagen som den första måndagen i vecka 2
- Utdata visar datumet för den första måndagen som faller under den månaden.
- Längden på detta Cal-objekt kommer att vara en viss längd, baserat på hur många veckor det finns i månaden. I vårt fall kommer det att vara en eller två som sådan första måndagen i veckan kommer att vara den första veckan oftast men om inte då överväga den andra veckan. Låt se i detalj varför vi också överväger den andra veckan.
- Här använder vi kalenderns konstanta måndag, kalenderobjektet ger dig konstanter som representerar söndag, måndag, tisdag, och så vidare. Vi har sett dessa tidigare. Så, om den vecka som representeras av måndagskonstanten inte är lika med 0 i vecka ett, kom ihåg nollor betyder dagar som tillhör en annan månad. Så i det här fallet, om det är noll, kommer det att bli en måndag som tillhör föregående månad. Men om den första måndagen inte är lika med 0 betyder det att min revisionsdag kommer att vara inom veckan en. Annars, om det är 0, så är den första måndagen inte den första veckan i månaden, den måste vara i den andra.
- Så då säger jag okej, ställ in min variabel för revisionsdag till måndagen som representeras av vecka två. Så, revisionsdagen kommer att komma tillbaka med oavsett dagen för antingen den första eller andra veckan.
Här är den fullständiga koden
Python 2 Exempel
importera kalendern# Skapa en vanlig textkalenderc = kalender.TextKalender (kalender.TORSDAG)str = c.formatmonth (2025, 1, 0, 0)tryck str# Skapa en HTML-formaterad kalenderhc = kalender.HTMLCalendar (kalender.TORSDAG)str = hc.formatmonth (2025, 1)tryck str# loop över dagarna i en månad# nollor indikerar att veckodagen är i nästa månad eller överlappande månadför jag under c.termonthdays (2025, 4):skriva ut i# Kalendern kan ge information baserat på lokala sådana namn och dagar och månader (fullständiga och förkortade former)för namn i kalendern. månad_namn:Skriv namnför dag i kalendern. dag_namn:utskrivningsdag# beräkna dagar baserat på en regel: Till exempel en revisionsdag den andra måndagen i varje månad# Ta reda på vilka dagar det skulle vara för varje månad, vi kan använda skriptet som visas härför månad inom intervallet (1, 13):# Den hämtar en lista över veckor som representerar månadenmycal = calendar.monthcalendar (2025, månad)# Den första MÅNDAGEN måste vara inom de två första veckornavecka1 = mycal [0]vecka2 = mycal [1]om vecka1 [kalender.MÅNDAG]! = 0:granskningsdag = vecka1 [kalender.MÅNDAG]annan:# om den första MÅNDAGEN inte är den första veckan, måste den vara under den andra veckangranskningsdag = vecka2 [kalender.MÅNDAG]skriva ut "% 10s% 2d"% (calendar.month_name [month], auditday)
Python 3 Exempel
importera kalendern# Skapa en vanlig textkalenderc = kalender.TextKalender (kalender.TORSDAG)str = c.formatmonth (2025, 1, 0, 0)skriva ut (str)# Skapa en HTML-formaterad kalenderhc = kalender.HTMLCalendar (kalender.TORSDAG)str = hc.formatmonth (2025, 1)skriva ut (str)# loop över dagarna i en månad# nollor indikerar att veckodagen är i nästa månad eller överlappande månadför jag under c.termonthdays (2025, 4):skriva ut (i)# Kalendern kan ge information baserat på lokala sådana namn och dagar och månader (fullständiga och förkortade former)för namn i kalendern. månad_namn:Skriv namn)för dag i kalendern. dag_namn:skriva ut (dag)# beräkna dagar baserat på en regel: Till exempel en revisionsdag den andra måndagen i varje månad# Ta reda på vilka dagar det skulle vara för varje månad, vi kan använda skriptet som visas härför månad inom intervallet (1, 13):# Den hämtar en lista över veckor som representerar månadenmycal = calendar.monthcalendar (2025, månad)# Den första MÅNDAGEN måste vara inom de två första veckornavecka1 = mycal [0]vecka2 = mycal [1]om vecka1 [kalender.MÅNDAG]! = 0:granskningsdag = vecka1 [kalender.MÅNDAG]annan:# om den första MÅNDAGEN inte är den första veckan, måste den vara under den andra veckangranskningsdag = vecka2 [kalender.MÅNDAG]skriva ut ("% 10s% 2d"% (calendar.month_name [månad], revisionsdag))
Sammanfattning:
- I Python kan du formatera kalendern på det sätt du vill genom att ändra dag i månaden som ska börja
- Skriv ut kalendern i HTML-format
- Hämta data från det lokala systemet, som månader eller vardagar
- Hämta listan över den specifika dagen för ett helt år