Python kalendár modul je súčasťou štandardnej knižnice. Umožňuje výstup kalendára podľa mesiaca alebo podľa roku a tiež poskytuje ďalšie funkcie súvisiace s kalendárom.
kalendár samotný modul závisí od modulu dátetime. Ale budeme tiež potrebovať Dátum Čas pre naše vlastné účely neskôr, takže je najlepšie importovať obidve tieto položky. Tiež, aby sme urobili nejaké rozdelenie reťazcov, budeme potrebovať re modul. Poďme ich všetky importovať naraz.
Predvolene kalendáre začínajú týždeň s pondelkom (deň 0) podľa európskeho dohovoru a končia s nedeľou (deň 6). Ak dávate prednosť nedeľu ako prvý deň v týždni, použite setfirstweekday () spôsob na zmenu predvoleného nastavenia na 6. deň:
Na prepínanie medzi týmito dvoma položkami môžete ako argument použiť prvý deň v týždni sys modul. Potom by ste skontrolovali hodnotu pomocou ak vyhlásenie a nastaviť setfirstweekday () podľa toho.
V našom kalendári by bolo pekné mať hlavičku kalendára, ktorá znie niečo ako „Kalendár generovaný Pythonom pre ...“ a má aktuálny mesiac a rok. Aby sme to dosiahli, musíme zo systému získať mesiac a rok. Táto funkcia je niečo, čo
kalendár poskytuje, Python dokáže načítať mesiac a rok. Stále však máme problém. Keďže všetky systémové dátumy sú číselné a neobsahujú skrátené ani nečíselné formy mesiacov, potrebujeme zoznam týchto mesiacov. Zadajte zoznam rok.Teraz, keď dostaneme číslo mesiaca, získame prístup k tomuto číslu (mínus jedno) v zozname a získame celé meno mesiaca.
Je zvláštne, že Dátum Čas modul má Dátum Čas trieda. Z tejto triedy nazývame dva objekty: now () a dátum(). Metóda datetime.datetime.now () vráti objekt obsahujúci nasledujúce informácie: rok, mesiac, dátum, hodina, minúta, sekunda a mikrosekundy. Časové informácie samozrejme nepotrebujeme. Ak chcete utratiť iba informácie o dátume, odovzdávame výsledky now () na datetime.datetime.date () ako argument. Výsledkom je, že dnes teraz obsahuje rok, mesiac a dátum oddelené znakmi EM.
Ak chceme tento bit údajov rozdeliť na lepšie zvládnuteľné časti, musíme ich rozdeliť. Potom môžeme časti priradiť premenným current_yr, aktuálny mesiaca current_day resp.
Ak chcete pochopiť prvý riadok tohto kódu, postupujte sprava doľava a zvnútra smerom von. Najprv objekt zúžime dnes aby na tom fungoval ako reťazec. Potom sme rozdelili pomocou em-dash ako oddeľovač alebo token. Nakoniec priradíme tieto tri hodnoty ako zoznam „aktuálnemu“.
Aby sme sa s týmito hodnotami mohli vyrovnať zreteľnejšie a nazvať dlhé meno aktuálneho mesiaca z rok, pridelíme číslo mesiaca current_no. V dolnom indexe potom môžeme urobiť trochu odpočítania rok a priraďte meno mesiaca aktuálny mesiac.
V ďalšom riadku je potrebné trochu nahradiť. Dátum, ktorý sa vráti z Dátum Čas je dvojciferná hodnota aj počas prvých deviatich dní v mesiaci. Ako držiteľ miesta funguje nula, ale radšej by sme mali len jeden číslicu v našom kalendári. Takže nenahradzujeme žiadnu hodnotu za každú nulu, ktorá začína reťazec (odtiaľ '\ A'). Nakoniec priradíme rok current_yr, na ceste sa zmení na celé číslo.
Metódy, ktoré budeme volať neskôr, budú vyžadovať vstup v celočíselnom formáte. Preto je dôležité zaistiť, aby sa všetky údaje o dátume ukladali v celočíselnej, nie reťazcovej forme.
Predtým, ako vytlačíme kalendár, musíme vytlačiťHTML rozloženie preambuly a CSS pre náš kalendár. Na tejto stránke nájdete kód na vytlačenie preambuly CSS a HTML pre kalendár. a skopírujte kód do svojho programového súboru. CSS v HTML tohto súboru sa riadi šablónou, ktorú ponúka Jennifer Kyrnin, About's Guide to Web Design. Ak tejto časti kódu nerozumiete, možno budete chcieť vyhľadať pomoc s učením CSS a HTML. Nakoniec na prispôsobenie názvu mesiaca potrebujeme nasledujúci riadok:
Po výstupe základného rozloženia môžeme nastaviť kalendár sám. Kalendár, v jeho najzákladnejšom bode, je tabuľka. Vytvorme teda tabuľku v našom HTML:
Teraz musíme vytvoriť skutočný kalendár. Na získanie skutočných údajov z kalendára potrebujeme kalendár modul je monthcalendar () metóda. Táto metóda má dva argumenty: rok a mesiac požadovaného kalendára (obidva v celočíselnej podobe). Vracia zoznam, ktorý obsahuje zoznamy dátumov mesiaca po týždni. Ak teda spočítame počet položiek vo vrátenej hodnote, máme počet týždňov v danom mesiaci.
Keď poznáme počet týždňov v mesiaci, môžeme vytvoriť pre slučka, ktorá sa počíta prostredníctvom a rozsah () od 0 do počtu týždňov. Takto vytlačí zvyšok kalendára.
Po spustení tohto rozsahu sa vyhodnocujú dátumy v týždni mesiac podľa hodnoty počítadla a priradené k týždeň. Potom sa vytvorí tabuľkový riadok na uchovávanie dátumov kalendára.
pre Slučka potom prechádza dňami v týždni, aby ich bolo možné analyzovať. kalendár modul vytlačí „0“ pre každý dátum v tabuľke, ktorý nemá platnú hodnotu. Prázdna hodnota by na naše účely fungovala lepšie, takže pre tieto dátumy tlačíme záložky tabulkových údajov bez hodnoty.
Ďalej, ak je deň aktuálny, mali by sme ho nejakým spôsobom zdôrazniť. Založený na td trieda dnes, CSS tejto stránky spôsobí, že aktuálny dátum bude vykreslený na tmavom pozadí namiesto svetlého pozadia ostatných dátumov.
Ak je dátum platnou hodnotou a nie je aktuálnym dátumom, vytlačí sa ako tabuľkové údaje. Presné farebné kombinácie sú uvedené v preambule štýlu CSS.
Len tento jednoduchý kalendár je možné použiť akýmkoľvek spôsobom, ktorý vyžaduje zobrazenie kalendára. Prepojením dátumov v HTML je možné ľahko vytvoriť funkciu denníka. Alternatívne je možné skontrolovať oproti denníku a potom premyslieť, ktoré dátumy sa vyberajú podľa ich farby. Alebo, ak jeden prevádza tento program do skriptu CGI, dá sa nechať generovať za behu.