⊗jsPrCndTD 53 of 62 menu

Discusión sobre la implementación de un calendario en JavaScript

Nuestro calendario es una tabla con números desde 1 hasta el último día del mes. El problema es que los números en la tabla en la primera fila no deben comenzar desde la primera celda.

Esto en general es obvio. No es obvio desde qué celda exactamente hay que empezar. Pensemos en ello.

Supongamos que la semana comienza el lunes, y este es el día cero. En este caso, el número del día de la semana del primer día del mes corresponde a la cantidad de celdas vacías antes de él. Por ejemplo, el jueves tendrá el número 3 y antes de él habrá 3 celdas vacías.

Un problema similar nos esperará al final de la tabla. Allí también hay que dejar celdas vacías después del último número del mes. En este caso, la cantidad de celdas vacías será igual a seis, de la cual hay que restar el número del día de la semana del último día del mes.

Pensemos ahora, cómo vamos a formar nuestra tabla. Obviamente, lo más conveniente es tener un array bidimensional, en cada subarray del cual haya 7 elementos (= cantidad de días en la semana). Al mismo tiempo, en el primer y último subarrays, parte de los elementos deben estar vacíos.

Algoritmo de acciones

Hagamos una función que cree un array de números desde 1 hasta el último día del mes. Luego hagamos una función que agregue al principio del array la cantidad necesaria de elementos vacíos. Una función análoga debe agregar elementos vacíos al final del array.

Después de esto, tendremos un array unidimensional con una cantidad de elementos múltiplo de 7. Transformemos este array en uno bidimensional con 7 elementos en cada subarray.

Luego tomaremos este array bidimensional, lo recorreremos con bucles y formaremos nuestra tabla.

Este algoritmo de acciones lo realizaremos por etapas en las siguientes lecciones.

Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar