Python Modul calendar cu exemplu
⚡ Rezumat inteligent
Modulul calendar din Python generează calendare text și HTML folosind clasele TextCalendar și HTMLCalendar. Efectuează calcule de date pe baza zilei, lunii și anului și vă permite să personalizați ziua lucrătoare de început pentru orice lună.

modulul de calendar în Python are o clasă calendar care permite calcule pentru diverse sarcini pe baza datei, lunii și anului. În plus, TextCalendar și HTMLCalendar clase în Python vă permite să editați calendarul și să îl utilizați conform cerințelor dumneavoastră. Să vedem ce putem face cu Python calendar.
În ce este modulul calendar? Python?
modulul calendar face parte din Python bibliotecă standard, deci este disponibilă fără nicio instalare. Grupează mai multe clase și funcții auxiliare care construiesc calendare și răspund la întrebări comune despre date, cum ar fi în ce zi a săptămânii cade o dată sau câte zile conține o lună.
Modulul oferă cinci clase principale:
- Calendar este o clasă de bază care furnizează datele din care sunt construite celelalte calendare.
- TextCalendar produce calendare în text simplu pentru o lună sau un an întreg.
- HTMLCalendar produce calendare sub formă de tabele HTML pentru pagini web.
- LocalizareTextCalendar este un calendar text care folosește numele zilei și lunii unei setări regionale alese.
- Localizare HTML Calendar este echivalentul HTML care respectă o anumită regionalizare.
În mod implicit, o săptămână calendaristică începe pe Monday, respectând convenția europeană. Puteți schimba prima zi folosind o constantă precum calendar.SUNDAY, așa cum se arată în exemplele de mai jos.
Cum se imprimă un calendar text în Python
Pas 1) Rulați codul.
- Code Linia nr. 1: Începem cu „import calendar”, care va importa toate clasele acestui modul.
- Code Linia # 3: c= calendar.TextCalendar(calendar.SUNDAY) îi spune interpretorului să creeze un calendar text. Începutul lunii va fi duminică. În Python, puteți formata calendarul după cum doriți și puteți schimba ziua cu care începe luna.
- Code Linia # 4: str= c.formatmonth(2025,1) creează un calendar pentru anul 2025, Luna 1 – Ianuarie.
- Code Linia # 5: print str va afișa rezultatul.
Să schimbăm rapid valoarea de la duminică la joi și să verificăm rezultatul.
Cum se imprimă un calendar HTML în Python
Pas 2) De asemenea, puteți imprima calendarul în format HTML. Această funcție este utilă pentru dezvoltatorii care doresc să modifice aspectul calendarului.
Cum să parcurgi zilele unei luni
Pas 3) Buclele pe parcursul zilelor unei luni utilizând c.itermonthdays (2025,4); va obține numărul total de zile pentru luna respectivă.
- Când executați codul pentru a obține numărul total de zile pentru o anumită lună, să zicem „aprilie”, veți obține 30 de zile în rezultat, dar veți vedea și niște zerouri împreună cu aceste zile la început și uneori la sfârșit.
- Zerourile din ieșire înseamnă că ziua săptămânii se suprapuneping lună, ceea ce înseamnă că nu aparține lunii respective.
- Aceste zerouri apar în rezultat deoarece, în codul tău, ai menționat o zi (joi). Așadar, atunci când apelezi funcția „c.itermonthdays”, aceasta începe să numere zilele de joi, iar joia ta poate să nu înceapă pe 1 aprilie - ar putea fi 28 sau 29 martie. Deci, codul începe să numere zilele de la 28 martie și orice zile ulterioare până la 1 aprilie. Aceste zile sunt numărate ca zerouri, iar în rezultat vei vedea aceste zerouri. Același lucru este valabil și pentru sfârșitul lunii.
- Deci, cu excepția datelor 1–30, toate datele din luna precedentă, precum și din cea următoare, apar în rezultat ca zerouri.
Cum se preiau numele lunilor și zilelor săptămânii din sistemul local
Pas 4) Puteți prelua date din sistemul local, cum ar fi luni sau zile lucrătoare.
- Rezultatul de aici arată că am imprimat numele lunilor din sistemul local. De asemenea, puteți obține și numele zilelor săptămânii, așa cum se arată mai jos.
- Rezultatul depinde de sistemul local. Dacă sistemul dvs. local este setat pentru o altă țară, acesta afișează rezultatul conform setărilor locale ale țării respective. Aici avem luni, deci nu va face nicio diferență, dar pentru o săptămână sau o zi, cu siguranță va diferi.
Cum să găsești o anumită zi pentru întregul an
Pas 5) Puteți obține lista unei anumite zile pentru un an întreg. De exemplu, există o zi de audit în fiecare primă zi. Monday a unei săptămâni. Să presupunem că vrei să știi data primei Monday pentru fiecare lună. Puteți folosi acest cod.
- mycal = calendar.monthcalendar(2025, month) creează un calendar pentru luna respectivă.
- Setați variabilele săptămână1 și săptămână2 la prima și a doua săptămână a calendarului.
- Verificați dacă săptămâna 1 conține Monday și stabilește ziua auditului.
- Altfel, setați ziua auditului ca fiind prima Monday în săptămâna 2.
- Ieșirea arată data pentru prima Monday care cade în luna respectivă.
- Lungimea acestui obiect Cal depinde de câte săptămâni are luna. În cazul nostru, este una sau două, deoarece prima Monday a săptămânii este cel mai adesea în prima săptămână, dar dacă nu, atunci luăm în considerare a doua săptămână. Să vedem în detaliu de ce luăm în considerare și a doua săptămână.
- Aici folosim constanta calendarului MondayObiectul calendar vă oferă constante care reprezintă duminica, Monday, marți și așa mai departe. Dacă, în prima săptămână, ziua reprezentată de Monday constantă nu este egală cu 0 – rețineți, zerourile înseamnă zile care aparțin altei luni – atunci asta Monday aparține acestei luni și ziua auditului este în prima săptămână. Dacă este 0, atunci prima Monday nu este în prima săptămână a lunii, deci trebuie să fie în a doua.
- În acest caz, setăm variabila zilei auditului la Monday reprezentată de săptămâna a doua. Ziua auditului revine cu oricare dintre zilele fie pentru prima, fie pentru a doua săptămână.
Completa Python Calendar Code Exemplu
Iată codul complet.
Python 2 Exemplu
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 Exemplu
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))
Funcții utile în Python Modulul calendar
Pe lângă ghidul de mai sus, modulul calendar este livrat cu câteva funcții utile care funcționează fără a crea o instanță de clasă:
- calendar.calendar(an) returnează un calendar anual complet ca șir de caractere pe mai multe linii, în timp ce calendar.prcal(an) îl imprimă direct.
- calendar.lună(an, lună) returnează o singură lună ca text și calendar.prmonth(an, lună) îl imprimă.
- calendar.lunăcalendar(an, lună) returnează luna ca o listă de rânduri pentru săptămână, unde fiecare zi este un număr întreg, iar zilele din afara lunii sunt 0.
Aceste funcții permit afișarea rapidă a calendarului pe o singură linie, ceea ce este util în scripturi și sesiuni interactive unde nu aveți nevoie de controlul suplimentar al claselor TextCalendar sau HTMLCalendar.
Cum să verifici dacă există un an bisect în Python
Modulul calendar vă poate spune, de asemenea, dacă un an este bisect, ceea ce contează deoarece februarie are 29 de zile în loc de 28 în astfel de ani. Două funcții gestionează acest lucru:
- calendar.isleap(an) returnează True când anul este bisect și False în caz contrar.
- calendar.leapdays(y1, y2) returnează numărul de ani bisecți din intervalul de la y1 până la y2, dar fără a-l include.
De exemplu, calendar.isleap(2024) returnează True, în timp ce calendar.isleap(2025) returnează False. Verificările anilor bisecți sunt utile ori de câte ori validați date, programați evenimente recurente sau numărați numărul exact de zile dintre doi ani.







