⊗jsPrCndTD 53 of 62 menu

Kalenterin toteutuksen käsittely JavaScriptillä

Kalenterimme on taulukko numeroiden kanssa 1:stä kuukauden viimeiseen päivään. Ongelmana on, että numeroiden taulukon ensimmäisellä rivillä ei saa alkaa ensimmäisestä solusta.

Tämä on yleisesti ottaen ilmeistä. Ei ole kuitenkaan ilmeistä, mistä solusta pitäisi aloittaa. Mietitäänpä asiaa.

Oletetaan, että viikko alkaa maanantaista, ja se on nollas päivä. Tässä tapauksessa kuukauden ensimmäisen päivän viikonpäivän numero vastaa tyhjien solujen määrää ennen sitä. Esimerkiksi, torstain numero on 3 ja ennen sitä on 3 tyhjää solua.

Samanlainen ongelma odottaa meitä taulukon lopussa. Myös sinne on jätettävä tyhjiä soluja viimeisen kuukausipäivän jälkeen. Tässä tapauksessa tyhjien solujen määrä on kuusi, josta on vähennettävä viikonpäivän numero kuukauden viimeisenä päivänä.

Mietitään nyt, kuinka muodostamme taulukkomme. On ilmeisen kätevintä olla kaksiulotteinen taulukko, jossa jokaisessa alataulukossa on 7 alkiota (= viikonpäivien määrä). Samalla ensimmäisessä ja viimeisessä alataulukoissa osan alkioista on oltava tyhjiä.

Toimintojen algoritmi

Tehdään funktio, joka luo taulukon numeroiden kanssa 1:stä kuukauden viimeiseen päivään. Sitten tehdään funktio, joka lisää taulukon alkuun tarvittavan määrän tyhjiä alkioita. Vastaavan funktion tulee lisätä tyhjät alkiot taulukon loppuun.

Tämän jälkeen saamme yksiulotteisen taulukon, jossa on alkioita, määrältään 7:llä jaollinen. Muunnamme tämän taulukon kaksiulotteiseksi, 7 alkiota per alataulukko.

Otamme sitten tämän kaksiulotteisen taulukon, käymme sen läpi silmukoilla ja muodostamme taulukkomme.

Toteutamme tämän toiminta-algoritmin vaiheittain seuraavissa oppitunneissa.

Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää