Pythoni omad kalender moodul on osa standardkogust. See võimaldab kalendri väljaandmist kuude või aastate kaupa ning pakub ka muid kalendriga seotud funktsioone.
kalender moodul ise sõltub päevaaja moodulist. Kuid me vajame ka kuupäev Kellaaeg oma tarbeks hiljem, nii et kõige parem on need mõlemad importida. Samuti on stringi poolitamiseks vaja: re moodul. Importime need kõik korraga.
Vaikimisi algavad kalendrid nädalaga esmaspäeval (päev 0) vastavalt Euroopa konventsioonile ja lõppevad pühapäevaga (6. päev). Kui eelistate nädala esimest päeva pühapäevaks, kasutage nuppu esimene esmaspäev () meetod vaikeväärtuse muutmiseks 6. päevaks järgmiselt:
Nende kahe vahel vahetamiseks võite argumendi kaudu läbida nädala esimese päeva, kasutades nuppu süs moodul. Seejärel kontrolliksite väärtust tähega kui avalduse ja määrake esimene esmaspäev () meetod vastavalt.
Meie kalendris oleks tore, kui kalendril oleks päis, mis loeks midagi sellist nagu "Pythoni loodud kalender ..." ja millel oleks praegune kuu ja aasta. Selleks peame kuu ja aasta süsteemist hankima. See funktsionaalsus on midagi sellist
kalender näeb ette, et Python saab kätte kuu ja aasta. Kuid meil on endiselt probleem. Kuna kõik süsteemikuupäevad on numbrilised ega sisalda lühendamata ega numbrilisi kuude vorme, vajame nende kuude loendit. Sisestage nimekiri aastal.Nüüd, kui saame kuu numbri, pääseme sellele numbrile (miinus üks) loendisse ja saame terve kuu nime.
Kummalisel kombel: kuupäev Kellaaeg moodulil on kuupäev Kellaaeg klass. Just sellest klassist kutsume kahte objekti: nüüd () ja kuupäev (). Meetod datetime.datetime.now () tagastab objekti, mis sisaldab järgmist teavet: aasta, kuu, kuupäev, tund, minut, sekund ja mikrosekundid. Muidugi pole meil vaja ajainfot. Ainuüksi kuupäevateabe kustutamiseks edastame andmebaasi tulemused nüüd () kuni datetime.datetime.date () argumendina. Tulemus on selline täna sisaldab nüüd numbrimärkidega eraldatud aastat, kuud ja kuupäeva.
Selle väikese osa andmete hallatavamateks osadeks jaotamiseks peame selle jagama. Seejärel saame osad muutujatele määrata praegune_aasta, Käesolev kuuja praegune_päev vastavalt.
Selle koodi esimese rea mõistmiseks töötage paremalt vasakule ja seestpoolt väljapoole. Esiteks, me struktureerime objekti täna selleks, et seda nööriga kasutada. Seejärel jagasime selle em-kriipsu eraldajana või märgina laiali. Lõpuks määrame need kolm väärtust loendina väärtusele „praegune”.
Et neid väärtusi selgemalt käsitleda ja praeguse kuu pikk nimi välja kutsuda aastal, määrame kuu numbri praegune_no. Seejärel saame alamrubriigis natuke lahutada aastal ja määrake kuu nimi Käesolev kuu.
Järgmises reas on vaja natuke asendamist. Kuupäev, millest tagasi kuupäev Kellaaeg on kahekohaline väärtus isegi kuu esimese üheksa päeva jooksul. Null toimib kohavaldajana, kuid meie kalendris oleks pigem üks number. Seega ei asenda me ühtegi stringi algavat nulli (seega '\ A'). Lõpuks määrame aasta praegune_aasta, teisendades selle terveks arvuks.
Meetodid, millele hiljem helistame, nõuavad sisestust täisarvu vormingus. Seetõttu on oluline tagada, et kõik kuupäeva andmed salvestatakse täisarvuna, mitte stringi kujul.
Enne kalendri printimist peame printima kalendriHTML meie kalendri preambul ja CSS-paigutus. Sellel lehel saate vaadata koodi, et printida kalendri CSS ja HTML-i preambul. ja kopeerige kood oma programmifaili. CSS selle faili HTML-is järgib malli, mille pakkus välja Jennifer Kyrnin, About's Guide to Web Design. Kui te ei saa sellest koodi osast aru, võiksite küsida temalt abi CSS-i ja HTML-i õppimiseks. Kuu nime kohandamiseks vajame järgmist rida:
Nüüd, kui põhipaigutus on väljastatud, saame kalendri ise üles seada. Kalender on kõige põhilisemas punktis tabel. Teeme siis tabeli meie HTML-is:
Nüüd peame looma tegeliku kalendri. Tegelike kalendriandmete saamiseks vajame kalender moodul kuukalender () meetod. Sellel meetodil on kaks argumenti: soovitud kalendri aasta ja kuu (mõlemad täisarvu kujul). Tagastab loendi, mis sisaldab kuu kuupäevade loendeid nädalate kaupa. Nii et kui arvestame tagastatud väärtuses olevate üksuste arvu, on meil antud kuu nädalate arv.
Teades nädalate arvu kuus, saame luua a jaoks ahel, mis loeb läbi a vahemik () 0-st nädalate arvuni. Sel juhul prindib see ülejäänud kalendri välja.
Pärast selle vahemiku algust kaotatakse nädala kuupäevad kuu vastavalt loenduri väärtusele ja määratud nädal. Seejärel luuakse kalendrikuupäevade hoidmiseks tabelirida.
A jaoks silmus siis kõnnib läbi nädalapäevad, et neid saaks analüüsida. kalender moodul prindib tabelisse iga kuupäeva jaoks, millel pole kehtivat väärtust, '0'. Tühi väärtus toimiks meie eesmärkidel paremini, nii et prindime tabeli andmete bookendid ilma nende kuupäevade väärtuseta.
Järgmisena, kui päev on praegune, peaksime selle kuidagi esile tooma. Põhinedes td klass täna, põhjustab selle lehe CSS selle kuupäeva muutmise tumedale taustale, mitte muude kuupäevade heledale taustale.
Lõpuks, kui kuupäev on kehtiv väärtus ja ei ole praegune kuupäev, trükitakse see tabelina. Nende täpsed värvikombinatsioonid on toodud CSS-i stiili preambulis.
Lihtsalt seda lihtsat kalendrit saab kasutada igal viisil, mis vajab kalendri esitust. Kuupäevade HTML-i linkimisega saab päevikufunktsioone hõlpsalt luua. Teise võimalusena saate vaadata päeviku faili ja seejärel kajastada, millised kuupäevad on värvi järgi võetud. Või kui see programm teisendatakse CGI skriptiks, võib selle genereerida lennult.