Pythona kalendar modul je dio standardne knjižnice. Omogućuje ispis kalendara po mjesecu ili godini, a također pruža i ostale, povezane s kalendarom, funkcije.
kalendar sam modul ovisi o modulu datuma. Ali trebat će nam i Datum vrijeme u naše svrhe kasnije, pa je najbolje oboje uvesti. Također, da bismo napravili dijeljenje niza, trebat će nam ponovno modul. Uvozimo ih sve odjednom.
Prema zadanim postavkama kalendari počinju tjedan s ponedjeljkom (dan 0), prema Europskoj konvenciji, a završavaju u nedjelju (6. dan). Ako radite nedjelju kao prvi dan u tjednu, poslužite se nadimkom setfirstweekday () metoda za promjenu zadanog u 6. dan na sljedeći način:
Za prebacivanje između njih dva, možete prenijeti prvi dan u tjednu kao argument koristeći sys modul. Tada biste provjerili vrijednost s ako izjavu i postavite setfirstweekday () metoda u skladu s tim.
U našem kalendaru bilo bi lijepo imati zaglavlje kalendara koje glase poput "Kalendara generiranog od Pythona za ..." i imaju tekući mjesec i godinu. Da bismo to učinili, iz sustava moramo dobiti mjesec i godinu. Ova je funkcionalnost nešto što
kalendar pruža, Python može dohvaćati mjesec i godinu. Ali još uvijek imamo problem. Budući da su svi datumi u sustavu numerički i ne sadrže kratice ili brojeve u mjesecima, trebamo popis tih mjeseci. Unesite popis godina.Sada kada dobijemo broj mjeseca, možemo pristupiti tom broju (minus jedan) na popisu i dobiti naziv cijelog mjeseca.
Zanimljivo je Datum vrijeme modul ima a Datum vrijeme klase. Iz ove klase nazivamo dva objekta: sada() i datum(). Način datetime.datetime.now () vraća objekt koji sadrži sljedeće podatke: godinu, mjesec, datum, sat, minutu, sekundu i mikrosekunde. Naravno, nemamo potrebe za informacijama o vremenu. Da bismo sami precizirali podatke o datumu, prenosimo rezultate rezultata sada() do datetime.datetime.date () kao argument. Rezultat je to danas sada sadrži godinu, mjesec i datum odvojen em-crticama.
Da bismo razdvojili ovaj dio podataka na više upravljanih dijelova, moramo ih podijeliti. Tada dijelove možemo dodijeliti varijablama current_yr, trenutni mjesec, i današnji dan odnosno.
Da biste razumjeli prvi redak ovog koda, radite s desna na lijevo i iznutra prema van. Prvo, objekt smo strukturirali danas kako bi na njemu djelovao kao niz. Zatim ga podijelimo pomoću em-crtice kao razgraničenja ili tokena. Konačno, te tri vrijednosti dodijelimo kao popis "trenutnim".
Kako biste se jasnije suočili sa ovim vrijednostima i izabrali dugo ime tekućeg mjeseca godina, broj mjeseca dodjeljujemo current_no. Tada možemo malo oduzeti u subcriptu od godina i dodijeliti ime mjeseca trenutni mjesec.
U sljedećem retku treba malo zamjene. Datum iz kojeg se vraća Datum vrijeme dvocifrena je vrijednost čak i prvih devet dana u mjesecu. Nula djeluje kao nositelj mjesta, ali mi bi radije da naš kalendar ima samo jednoznamenkasti broj. Dakle, ne zamjenjujemo nikakvu vrijednost za svaku nulu koja započinje niz (otuda '\ A'). Konačno, godinu dodjeljujemo current_yr, pretvarajući ga u cijeli broj na putu.
Metode koje ćemo nazvati kasnije zahtijevat će unos u cijelom formatu. Stoga je važno osigurati da se svi datumski podaci spremaju u cijeli, a ne nizni oblik.
Prije nego što ispišemo kalendar, moramo ga ispisatiHTML preambula i CSS izgled našeg kalendara. Na ovoj stranici potražite kôd da biste ispisali CSS i HTML preambulu za kalendar. i kopirajte kod u programsku datoteku. CSS u HTML-u ove datoteke slijedi predložak koji je ponudila Jennifer Kyrnin, O vodiču za web dizajn. Ako ne razumijete ovaj dio koda, možda biste ga trebali konzultirati kako pomaže u učenju CSS-a i HTML-a. I na kraju, za prilagodbu naziva mjeseca potreban nam je sljedeći redak:
Sada kad je ishodi osnovni izgled, možemo sami postaviti kalendar. Kalendar, u njegovoj najosnovnijoj točki, je tablica. Zato napravimo tablicu u našem HTML-u:
Sada moramo stvoriti stvarni kalendar. Da bismo dobili stvarne podatke kalendara, potrebni su nam podaci kalendar modula monthcalendar () metoda. Ova metoda uzima dva argumenta: godinu i mjesec željenog kalendara (oba u cijelom obliku). Vraća popis koji sadrži popis datuma u mjesecu po tjednima. Dakle, ako računamo broj predmeta u vraćenoj vrijednosti, u datom mjesecu imamo broj tjedana.
Znajući broj tjedana u mjesecu, možemo stvoriti za petlja koja broji kroz a Raspon () od 0 do broja tjedana. Kako to čini, ispisat će ostatak kalendara.
Nakon što je ovo područje pokrenuto, datumi u tjednu izuzimaju se mjesec prema vrijednosti brojača i dodijeljena tjedan. Zatim se stvara tablični redak koji drži datume kalendara.
za petlja tada prolazi kroz dane u tjednu kako bi se mogla analizirati. kalendar modul ispisuje "0" za svaki datum u tablici koji nema valjanu vrijednost. Prazna vrijednost bolje bi radila u naše svrhe, tako da ispisujemo veze tabelarnih podataka bez vrijednosti za te datume.
Dalje, ako je dan trenutni, trebali bismo to nekako istaknuti. Bazirano na td klasa danas, CSS ove stranice uzrokovat će prikazivanje trenutnog datuma na tamnoj pozadini umjesto na svijetloj pozadini ostalih datuma.
Konačno, ako je datum valjana vrijednost, a nije trenutni datum, ispisuje se kao tabelarni podatak. Točne kombinacije boja za njih nalaze se u preambuli u stilu CSS.
Upravo ovaj jednostavan kalendar može se koristiti na bilo koji način koji treba imati kalendarski prikaz. Ako hipervezujete datume u HTML-u, lako se može stvoriti funkcionalnost dnevnika. Alternativno, možete provjeriti ima li datoteku dnevnika i potom odražavati koje datume uzima njihova boja. Ili, ako netko pretvori ovaj program u CGI skriptu, može se generirati u letu.