Krok 2: widok tekstowy z modelu
Kalendarz: logika oddzielona od widoku - Kalendarz w JavaScript krok po kroku (JavaScript)
Widok zamienia model na coś do pokazania. `textView(weeks)` robi z tygodni wiersze tekstu (puste pole = dwie spacje), a program tylko łączy jedno z drugim: `console.log(textView(monthWeeks(2026, 11)))`. Model się nie zmienił.
// model: miesiąc jako tablica tygodni po 7 pól, puste pola = null
function monthWeeks(year, month) {
const firstDay = (new Date(year, month - 1, 1).getDay() + 6) % 7;
const days = new Date(year, month, 0).getDate();
const cells = Array(firstDay).fill(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;
}
// widok: tygodnie zamienione na wiersze tekstu
function textView(weeks) {
const lines = ['Pn Wt Śr Cz Pt So Nd'];
for (const week of weeks) {
lines.push(week.map(d => (d === null ? ' ' : String(d).padStart(2))).join(' '));
}
return lines.join('\n');
}
console.log(textView(monthWeeks(2026, 11)));Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.
Wszystkie lekcje kursu Kalendarz w JavaScript krok po kroku·Zaloguj się, aby zapisać postęp na koncie.