⊗jsPrCndTD 53 of 62 menu

Discussão da implementação de um calendário em JavaScript

Nosso calendário é uma tabela com números de 1 até o último dia do mês. O problema é que os números na tabela, na primeira linha, não devem começar na primeira célula.

Isso é geralmente óbvio. O que não é óbvio é a partir de qual célula exatamente precisamos começar. Vamos refletir sobre isso.

Suponha que a semana comece na segunda-feira, e este é o dia zero. Neste caso, o número do dia da semana do primeiro dia do mês corresponde ao número de células vazias antes dele. Por exemplo, quinta-feira terá o número 3 e antes dele haverá 3 células vazias.

Um problema semelhante nos aguardará no final da tabela. Lá também será necessário deixar células vazias após o último dia do mês. Neste caso, o número de células vazias será igual a seis, menos o número do dia da semana do último dia do mês.

Agora, vamos pensar em como vamos formar nossa tabela. Obviamente, é mais conveniente ter um array bidimensional, onde cada subarray terá 7 elementos (= número de dias na semana). Ao mesmo tempo, no primeiro e no último subarrays, parte dos elementos deve estar vazia.

Algoritmo de ações

Vamos criar uma função que fará um array de números de 1 até o último dia do mês. Em seguida, faremos uma função que adicionará ao início do array o número necessário de elementos vazios. Uma função análoga deve adicionar elementos vazios ao final do array.

Depois disso, teremos um array unidimensional com um número de elementos múltiplo de 7. Vamos transformar este array em um bidimensional com 7 elementos por subarray.

Em seguida, pegaremos este array bidimensional, iteraremos com loops e formaremos nossa tabela.

Executaremos este algoritmo de ações etapa por etapa nas próximas lições.

Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar