Обсъждане на реализацията на календар на JavaScript
Нашият календар представлява таблица
с числа от 1 до последния ден на месеца.
Проблемът е, че числата в таблицата в първия
ред не трябва да започват от първата клетка.
Това като цяло е очевидно. Не е очевидно от коя точно клетка трябва да се започне. Нека помислим.
Да приемем, че седмицата започва от понеделник, и
той е нулев ден. В този случай номерът на деня
от седмицата на първото число на месеца съответства
на броя празни клетки преди него. Например,
четвъртък ще има номер 3 и преди
него ще има 3 празни клетки.
Подобен проблем ще ни очаква в края на таблицата. Там също трябва да се оставят празни клетки след последното число на месеца. В този случай броят на празните клетки ще бъде равен на шест, от които трябва да се извади номерът на деня от седмицата на последния ден на месеца.
Нека сега помислим как ще формираме
нашата таблица. Очевидно е, че най-удобно е
да имаме двумерен масив, във всеки подмасив
на който ще има по 7 елемента (= брой
дни в седмицата). Като в първия и последния
подмасив част от елементите трябва да са празни.
Алгоритъм на действията
Ще направим функция, която ще създава масив
с числа от 1 до последния ден на месеца.
След това ще направим функция, която ще добави
в началото на масива необходимия брой празни
елементи. Подобна функция трябва да добавя
празни елементи в края на масива.
След това ще получим едномерен масив
с брой елементи, кратен на 7.
Ще преобразуваме този масив в двумерен по 7
елемента в подмасив.
След това ще вземем този двумерен масив, ще преминем с цикли и ще формираме нашата таблица.
Този алгоритъм на действията ще изпълняваме етапно в следващите уроци.