var now = new Date(); // Определяем текущую дату.
now.setDate(1); // Устанавливаем в переменной первое число текущего месяца.
var dayOfWeek = now.getDay(); //Определяем день недели.
if (dayOfWeek == 0)
dayOfWeek = 7;
var table = '<table>';
for (var i = 2 - dayOfWeek; i <= 43 - dayOfWeek; i++) {//Цикл, который будет заполнять таблицу.
if ((i - 1 + dayOfWeek) % 7 == 1)
table += '<tr>';//Открываем тег элемента ‹tr›.
table += '<td>' + i + '</td>'; // Выводим ячейку календаря.
if ((i - 1 + dayOfWeek) % 7 == 0)
table += '</tr>';//Закрываем тег элемента ‹tr›.
}
table += '</table>';//Закрываем тег элемента ‹table›
document.getElementById('calendar').innerHTML = table;
Общая суть функции ясна. Но почему здесь
var i = 2 - dayOfWeek
?
Почему, чтобы заполнить ячейки, не относящиеся к текущему месяцу, день недели отнимается именно от числа 2.
Заранее благодарна за ответ!