⊗jsPrCndTD 53 of 62 menu

Dyskusja na temat implementacji kalendarza w JavaScript

Nasz kalendarz to tabela z liczbami od 1 do ostatniego dnia miesiąca. Problem w tym, że liczby w tabeli w pierwszym wierszu nie powinny zaczynać się od pierwszej komórki.

Ogólnie jest to oczywiste. Nie jest oczywiste, od której komórki należy zacząć. Zastanówmy się nad tym.

Załóżmy, że tydzień zaczyna się od poniedziałku, i jest to dzień zerowy. W tym przypadku numer dnia tygodnia pierwszego dnia miesiąca odpowiada liczbie pustych komórek przed nim. Na przykład, czwartek będzie miał numer 3 i przed nim będzie 3 puste komórki.

Podobny problem czeka nas na końcu tabeli. Tam również trzeba zostawić puste komórki po ostatnim dniu miesiąca. W tym przypadku liczba pustych komórek będzie równa sześć, od której należy odjąć numer dnia tygodnia ostatniego dnia miesiąca.

Zastanówmy się teraz, jak będziemy tworzyć naszą tabelę. Oczywiście, najwygodniej jest mieć dwuwymiarową tablicę, w każdej podtablicy której będzie po 7 elementów (= liczbie dni w tygodniu). Jednocześnie w pierwszej i ostatniej podtablicy część elementów powinna być pusta.

Algorytm działań

Stwórzmy funkcję, która utworzy tablicę liczb od 1 do ostatniego dnia miesiąca. Następnie stwórzmy funkcję, która doda na początek tablicy niezbędną liczbę pustych elementów. Analogiczna funkcja powinna dodawać puste elementy na koniec tablicy.

Po tym otrzymamy jednowymiarową tablicę z liczbą elementów podzielną przez 7. Przekształćmy tę tablicę w dwuwymiarową, po 7 elementów w podtablicy.

Następnie weźmiemy tę dwuwymiarową tablicę, przeiterujemy pętlami i utworzymy naszą tabelę.

Ten algorytm działań będziemy etapowo realizować w kolejnych lekcjach.

Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć