⊗jsPrCndTD 53 of 62 menu

Разговор о имплементацији календара у JavaScript-у

Наш календар је табела са бројевима од 1 до последњег дана у месецу. Проблем је у томе што бројеви у табели у првом реду не смеју да почну од прве ћелије.

То је уопштено очигледно. Није очигледно од које тачно ћелије треба почети. Хајде да размислимо.

Нека недеља почне од понедељка, и нека је он нулти дан. У том случају број дана у недељи за први дан месеца одговара броју празних ћелија пред њим. На пример, четвртак ће имати број 3 и пред њим ће бити 3 празне ћелије.

Сличан проблем нас чека на крају табеле. Тамо такође треба оставити празне ћелије после последњег дана месеца. У овом случају број празних ћелија ће бити једнак шестици, од које треба одузети број дана у недељи последњег дана месеца.

Размислимо сада како ћемо формирати нашу табелу. Очигледно је да је најезгодиније имати дводимензионални низ, у којем ће сваки подниз имати по 7 елемената (= количини дана у недељи). При томе у првом и последњем поднизу део елемената ће бити празан.

Алгоритам радњи

Направићемо функцију која ће правити низ бројева од 1 до последњег дана месеца. Затим ћемо направити функцију која ће додати на почетак низа потребан број празних елемената. Слична функција треба да додаје празан елемент на крај низа.

После тога ћемо имати једно димензионални низ са бројем елемената, дељивим са 7. Трансформишимо овај низ у дводимензионални по 7 елемената у поднизу.

Затим ћемо узети овај дводимензионални низ, проћи га петљама и формирати нашу табелу.

Овај алгоритам радњи ћемо фаза по фазу извршавати у следећим лекцијама.

Српски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Користимо колачиће за рад сајта, аналитику и персонализацију. Обрада података се врши у складу са Политиком приватности.
прихвати све подеси одбиј