Model danych: tablica tygodni

Praktyka: kalendarz - JavaScript od podstaw: konsola (JavaScript)

Inne podejście: najpierw DANE, potem wyświetlanie. Funkcja `buildWeeks` nic nie wypisuje, tylko zwraca tablicę tygodni: każdy tydzień to 7 pól, puste pola mają `null` (także na końcu, do pełnego tygodnia). Druga funkcja, `renderText`, zamienia ten model na tekst. Rozdzielenie danych i widoku zaraz się opłaci: ten sam model pokażemy jako HTML i na stronie.

function buildWeeks(year, month) {
  const first = (new Date(year, month - 1, 1).getDay() + 6) % 7;
  const days = new Date(year, month, 0).getDate();
  const cells = [];
  for (let i = 0; i < first; i++) cells.push(null);
  for (let d = 1; d <= days; d++) cells.push(d);
  while (cells.length % 7 !== 0) cells.push(null);
  const weeks = [];
  for (let i = 0; i < cells.length; i += 7) {
    weeks.push(cells.slice(i, i + 7));
  }
  return weeks;
}
function renderText(weeks) {
  const lines = ['Pn Wt Śr Cz Pt So Nd'];
  for (const week of weeks) {
    const cells = week.map(day => (day === null ? '  ' : String(day).padStart(2)));
    lines.push(cells.join(' '));
  }
  return lines.join('\n');
}

const weeks = buildWeeks(2026, 11);
console.log('Tygodni:', weeks.length);
console.log('Pierwszy tydzień:', weeks[0]);
console.log(renderText(weeks));

Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.

Wszystkie lekcje kursu JavaScript od podstaw: konsola·Zaloguj się, aby zapisać postęp na koncie.