Python KALENDRI Õpetus koos näitega
Kalendri moodul sisse Python on kalendriklass, mis võimaldab arvutusi erinevate ülesannete jaoks kuupäeva, kuu ja aasta alusel. Lisaks on klassis TextCalendar ja HTMLCalendar Python võimaldab teil kalendrit muuta ja kasutada vastavalt oma nõudele.
Vaatame, millega saame hakkama Python Kalender.
Samm 1) Käivitage kood.
- Koodirida # 1: alustame "impordi kalendriga", mis impordib kõik selle mooduli klassid.
- Koodirida # 3: c= kalender.TextCalendar(calendar.SUNDAY) käsib tõlgil luua tekstikalender. Kuu algus on pühapäev. sisse Python, saate kalendri vormindada nii, et saate alguses muuta kuu päeva
- Koodirida # 4: str= c.formatmonth(2025,1) Koostame kalendri aastaks 2025, 1. kuu – jaanuar
- Koodirida # 5: print str prindib väljundi.
Muudame kiiresti väärtuse pühapäevast neljapäevani ja kontrollime väljundit
Step 2) Saate kalendri ka välja printida HTML-vormingus, see funktsioon on abiks arendajale, kui ta soovib kalendri välimuses ja olemises muudatusi teha
Step 3) Silmus kuu päevade jooksul, kasutades c.itermonthday (2025,4), hangib see selle kuu päevade koguarvu.
- Kui käivitate koodi konkreetse kuu päevade koguarvu saamiseks, öelge "aprill", siis saate väljundis 30 päeva, kuid näete ka nulle koos nende päevadega selle alguses ja mõnikord lõpus .
- Nullid väljundis tähendavad, et nädalapäev on kattuvas kuus, mis tähendab, et see ei kuulu sellesse kuusse.
- Need nullid kuvatakse väljundis, kuna olete oma koodis maininud päeva (neljapäeva), nii et kui kutsute funktsiooni "c.itermonthdays", hakkab see päevi lugema alates neljapäevast ja teie neljapäev ei pruugi alata kuupäevaga 1st aprill võib olla 28th või 29th märtsil, nii et kui koodi käivitate, hakkab see päevi lugema alates 28th märtsil ja mis tahes päeva pärast seda kuni 1st aprillist. Need päevad loetakse nulliks ja väljundis näete neid nulle ja sama kehtib ka kuu lõpu kohta.
- Seega, välja arvatud kuupäev 1-30, kuvatakse väljundis nullidena kõik eelmise ja kuujärgse kuu kuupäevad.
Step 4) Saate hankida andmeid kohalikust süsteemist (nt kuude või nädalapäevade jne kohta).
- Siin olev väljund näitab, et oleme kuu nime kohalikust süsteemist välja printinud. Samamoodi saate tuua ka nädalapäevade nime, nagu allpool näidatud
-
Väljund sõltub kohalikust süsteemist, oletame, et kui teie kohalik süsteem on mõni muu riik, annab see väljundi vastavalt selle riigi kohalikele seadistustele. Siin on kuud, nii et see ei erine, kuid kui see on nädal või päev, siis see kindlasti erineb.
Step 5) Saate hankida konkreetse päeva loendi terve aasta kohta. Näiteks igal esimesel on auditipäev Monday nädalast. Tahad teada esimese kuupäeva Monday iga kuu kohta. Saate seda koodi kasutada
- mycal = calendar.monthcalendar(2025, month) loob kuu kalendri
- Määrake muutujad nädal1 ja nädal2 kalendri esimeseks ja teiseks nädalaks
- Kontrollige, kas 1. nädal sisaldab Monday, määrake auditi päev
- Muidu seadke auditipäev esimeseks Monday 2 nädalal
- Väljund näitab esimese kuupäeva kuupäeva Monday mis langeb sellesse kuusse.
- Selle Cal-objekti pikkus on teatud pikkusega, mis põhineb sellel, mitu nädalat kuus seal on. Meie puhul on see kõigepealt üks või kaks Monday nädalast on kõige sagedamini esimesel nädalal, kuid kui mitte, siis kaaluge teist nädalat. Vaatame üksikasjalikult, miks kaalume ka teist nädalat.
- Siin kasutame kalendri konstanti Monday, annab kalendriobjekt teile konstandid, mis tähistavad pühapäeva, Monday, teisipäev, nii edasi, nii edasi. Oleme neid varem näinud. Seega, kui esimesel nädalal tähistab päev Monday konstant ei ole võrdne 0-ga, pidage meeles, et nullid tähistavad päevi, mis kuuluvad teise kuusse. Seega, sel juhul, kui see on null, on see a Monday mis kuulub eelmisele kuule. Aga kui esimene Monday ei ole võrdne 0-ga, see tähendab, et minu auditipäev jääb esimese nädala sisse. Vastasel juhul, kui see on 0, siis esimene Monday ei ole kuu esimesel nädalal, see peab olema teisel nädalal.
- Siis ütlen okei, määrake minu auditipäeva muutujaks Monday mida esindab teine nädal. Seega naaseb auditipäev esimesel või teisel nädalal, mis iganes päev on.
Siin on täielik kood
Python 2 Näide
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 Näide
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))
kokkuvõte
- In Python, saate kalendrit soovitud viisil vormindada, kuna saate alguses muuta kuu päeva
- Printige kalender välja HTML-vormingus
- Tooge andmed kohalikust süsteemist (nt kuud või nädalapäevad).
- Hankige terve aasta konkreetse päeva loend