Dinamiski izveidojiet HTML kalendāru Python

Python's kalendārs modulis ir daļa no standarta bibliotēkas. Tas ļauj izvadīt kalendāru pa mēnešiem vai gadu, kā arī nodrošina citas ar kalendāru saistītas funkcijas.

kalendārs Pats modulis ir atkarīgs no dienas laika moduļa. Bet mums arī būs vajadzīgs datums Laiks vēlāk mūsu pašu vajadzībām, tāpēc vislabāk ir importēt šos abus. Turklāt, lai veiktu virkņu sadalīšanu, mums būs nepieciešams re modulis. Importēsim tos visus vienā piegājienā.

Pēc noklusējuma kalendāri sākas ar nedēļu ar pirmdienu (0. diena) saskaņā ar Eiropas konvenciju un beidzas ar svētdienu (6. diena). Ja dodat priekšroku svētdienai kā pirmajai nedēļas dienai, izmantojiet pirmreizējā nedēļas diena () metode noklusējuma mainīšanai uz 6. dienu šādi:

Lai pārslēgtos starp diviem, kā pirmo argumentu jūs varētu iziet nedēļas pirmo dienu, izmantojot sis modulis. Pēc tam jūs pārbaudītu vērtību ar ja paziņojumu un iestatiet pirmreizējā nedēļas diena () metode attiecīgi.

Mūsu kalendārā būtu jauki, ja būtu tāda kalendāra galvene, kurā būtu lasāms kaut kas līdzīgs “Python ģenerēts kalendārs ...” un kurā būtu pašreizējais mēnesis un gads. Lai to izdarītu, mums ir jāiegūst mēnesis un gads no sistēmas. Šī funkcionalitāte ir kaut kas tāds

instagram viewer
kalendārs nodrošina Python var iegūt mēnesi un gadu. Bet mums joprojām ir problēma. Tā kā visi sistēmas datumi ir skaitliski un nesatur nesaīsinātas vai skaitliskas mēnešu formas, mums ir nepieciešams šo mēnešu saraksts. Ievadiet sarakstu gadā.

Tagad, kad mēs iegūstam mēneša numuru, mēs varam piekļūt šim numuram (mīnus viens) sarakstā un iegūt pilnu mēneša vārdu.

Interesanti, ka datums Laiks modulim ir datums Laiks klase. Tieši no šīs klases mēs saucam divus objektus: tagad () un datums(). Metode datetime.datetime.now () atgriež objektu, kurā ir šāda informācija: gads, mēnesis, datums, stunda, minūte, sekunde un mikrosekundi. Protams, mums nav vajadzīga laika informācija. Lai tikai iznīcinātu informāciju par datumu, mēs pārsūtīsim tagad () uz datetime.datetime.date () kā arguments. Rezultāts ir tāds šodien tagad ir gads, mēnesis un datums, kas atdalīts ar domuzīmēm.

Lai sadalītu šo datu daļu vieglāk pārvaldāmos gabalos, mums tas ir jāsadala. Pēc tam mēs varam sadalīt daļas mainīgajiem pašreizējais_v, tekošais mēnesis, un pašreizējā_diena attiecīgi.

Lai saprastu šī koda pirmo rindu, strādājiet no labās uz kreiso pusi un no iekšpuses uz āru. Pirmkārt, mēs sasaistām objektu šodien lai darbotos ar to kā stīgu. Pēc tam mēs to sadalījām, izmantojot em-dash kā norobežotāju vai marķieri. Visbeidzot, mēs piešķiram šīs trīs vērtības kā sarakstu “pašreizējai”.

Lai šīs vērtības varētu aplūkot skaidrāk un izsauktu tekošā mēneša garo vārdu no gadā, mēneša numuram piešķiram pašreizējais_no. Pēc tam mēs varam nedaudz atņemt apakštekstā gadā un piešķir mēneša vārdu tekošais mēnesis.

Nākamajā rindā ir vajadzīgs mazliet aizstāšanas. Datums, kas tiek atgriezts no plkst datums Laiks ir divciparu vērtība pat mēneša pirmajās deviņās dienās. Nulle darbojas kā vietas turētājs, bet mums labāk būtu, ja mūsu kalendārā būtu tikai viens cipars. Tātad katrai nullei, ar kuru sākas virkne, netiek aizstāta neviena vērtība (tātad '\ A'). Visbeidzot, mēs piešķiram gadu pašreizējais_v, visu laiku pārveidojot to par veselu skaitli.

Metodēm, kuras mēs sauksim vēlāk, būs nepieciešama ievade vesela skaitļa formātā. Tāpēc ir svarīgi pārliecināties, ka visi datuma dati tiek saglabāti skaitļos, nevis virknē.

Pirms kalendāra drukāšanas mums jāizdrukāHTML mūsu kalendāra preambula un CSS izkārtojums. Dodieties uz šo lapu, lai iegūtu kodu, lai izdrukātu kalendāra CSS un HTML preambulu. un nokopējiet kodu programmas failā. CSS šī faila HTML satur veidni, ko piedāvā Dženifera Kirina, About's Guide to Web Design. Ja jūs nesaprotat šo koda daļu, ieteicams konsultēties ar viņu, lai palīdzētu apgūt CSS un HTML. Visbeidzot, lai pielāgotu mēneša nosaukumu, mums ir nepieciešama šāda rinda:

Tagad, kad ir izvadīts pamata izkārtojums, mēs paši varam iestatīt kalendāru. Kalendārs visvienkāršākajā vietā ir tabula. Tāpēc izveidosim tabulu mūsu HTML:

Tagad mums ir jāizveido faktiskais kalendārs. Lai iegūtu faktiskos kalendāra datus, mums ir nepieciešams kalendārs moduļa mēneša kalendārs () metode. Šai metodei ir divi argumenti: vēlamā kalendāra gads un mēnesis (abi veseli skaitļi). Tas atgriež sarakstu, kurā ir saraksti ar mēneša datumiem pa nedēļām. Tātad, ja mēs ieskaitām atgrieztajā vērtībā vienību skaitu, mums ir nedēļu skaits attiecīgajā mēnesī.

Zinot nedēļu skaitu mēnesī, mēs varam izveidot priekš cilpa, kas skaitās caur diapazons () no 0 līdz nedēļu skaitam. Tādā gadījumā tas izdrukās pārējo kalendāru.

Pēc šī diapazona sākuma nedēļas datumi tiek atcelti mēnesī atbilstoši skaitītāja vērtībai un piešķirts nedēļā. Pēc tam tiek izveidota tabulas rinda kalendāra datumu turēšanai.

A priekš cilpa pēc tam staigā pa nedēļas dienām, lai tās varētu analizēt. kalendārs modulis izdrukā “0” par katru tabulas datumu, kam nav derīgas vērtības. Tukša vērtība darbotos labāk mūsu mērķiem, tāpēc mēs izdrukājam tabulas datu veidlapas bez vērtību šiem datumiem.

Tālāk, ja diena ir kārtējā, mums tas kaut kā jāizceļ. Pamatojoties uz td klase šodien, šīs lapas CSS izraisīs pašreizējā datuma atveidošanu uz tumša fona, nevis pārējo datumu gaišo fonu.

Visbeidzot, ja datumam ir derīga vērtība un tas nav pašreizējais datums, tas tiek izdrukāts kā tabulas dati. Precīzi to krāsu kombinācijas ir CSS stila preambulā.

Tikai šo vienkāršo kalendāru var izmantot jebkurā veidā, kuram nepieciešams kalendāra attēlojums. Izmantojot hipersaiti datumos HTML, var viegli izveidot dienasgrāmatas funkcionalitāti. Alternatīvi var pārbaudīt dienasgrāmatas failu un pēc tam atspoguļot, kuri datumi tiek ņemti vērā pēc krāsas. Vai arī, ja šo programmu pārvērš CGI skriptā, tā var tikt ģenerēta lidojuma laikā.

instagram story viewer