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

  • 🔘 Două tipuri de calendare: Clasele TextCalendar și HTMLCalendar produc calendare în text simplu și disponibile pentru web pentru o lună sau un an ales.
  • ☑️ Prima zi lucrătoare: Constante precum calendar.SUNDAY și metoda setfirstweekday() modifică ziua în care începe fiecare săptămână.
  • Iterație zile: Metoda itermonthdays() parcurge o buclă pe parcursul unei luni și se suprapun semnele.ping zile din lunile adiacente ca zerouri.
  • 🧪 Funcții auxiliare: Funcții precum isleap(), weekday() și monthrange() răspund la întrebări comune despre date fără nicio bibliotecă suplimentară.
  • 🛠️ Bibliotecă standard: Modulul calendar este livrat cu Python, deci nu necesită instalare înainte de a-l importa și utiliza.
  • 🤖 Fluxuri de lucru bazate pe inteligența artificială: Conductele de învățare automată obțin caracteristici ale calendarului, cum ar fi indicatorii de zi lucrătoare și de an bisect, pentru prognozarea seriilor temporale.

Python Modulul Calendar

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.

Imprimați un calendar text în Python

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

Schimbați prima zi a săptămânii a unei Python calendar

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.

Imprimați un calendar HTML în Python

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

Parcurge zilele unei luni în Python

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

Preia numele lunilor din sistemul local din Python

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

Preia numele zilelor săptămânii din sistemul local în Python

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.

Găsește o anumită zi pentru întregul an în Python

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

Întrebări frecvente

Modulul calendar se concentrează pe producerea și analizarea calendarelor — text, HTML, numere ale zilelor săptămânii și verificări ale anilor bisecți. Modulul datetime gestionează marcaje temporale specifice, aritmetica și formatarea datelor și orelor individuale. Multe programe le importă pe ambele și le utilizează împreună.

Apelează calendar.weekday(year, month, day). Returnează un număr întreg de la 0 (Monday) până la 6 (duminică). Asociați-l cu calendar.day_name pentru a converti acel număr într-o etichetă lizibilă, cum ar fi Monday sau vineri.

Folosește calendar.monthrange(year, month). Returnează un tuplu a cărui a doua valoare este numărul de zile, deci calendar.monthrange(2025, 2)[1] returnează 28. Prima valoare este ziua lucrătoare a primei zile a lunii respective.

Folosiți calendar.LocaleTextCalendar sau calendar.LocaleHTMLCalendar și transmiteți o setare regională precum „fr_FR”. Luna formatată afișează apoi numele zilei săptămânii și al lunii în limba respectivă, cu condiția ca setarea regională să fie instalată pe sistemul de operare.

Generați markup-ul cu HTMLCalendar().formatmonth(2025, 1), apoi deschideți un fișier în modul de scriere și apelați write() cu acel șir. Salvarea acestuia cu o extensie .html permite oricărui browser să afișeze calendarul stilizat.

În mod implicit, săptămâna începe pe Monday, urmând convenția europeană. Apelați calendar.setfirstweekday(calendar.SUNDAY) sau transmiteți o constantă precum calendar.SUNDAY către un TextCalendar, pentru ca săptămâna să înceapă într-o altă zi.

Conductele de date utilizează funcții de calendar pentru a obține caracteristici precum ziua săptămânii, numărul săptămânii și semnalizatoarele anului bisect din date brute. Aceste caracteristici proiectate ale calendarului ajută modelele de învățare automată să capteze tipare săptămânale și sezoniere în prognoza seriilor temporale.

Da. GitHub Copilot și asistenții AI pot scrie fragmente de module de calendar — imprimarea lunilor, verificarea anilor bisecți sau construirea unui calendar HTML — dintr-un scurt comentariu. RevVedeți rezultatul, deoarece indexarea pentru zilele lucrătoare și setările pentru prima zi sunt ușor de confundat.

Rezumați această postare cu: