Krok 9: pierwszy dzień tygodnia z obiektu Date

Kalendarz w konsoli krok po kroku - Kalendarz w JavaScript krok po kroku (JavaScript)

Zamiast wpisywać pierwszy dzień z palca, podajemy rok i miesiąc, a resztę liczy obiekt `Date`. `new Date(rok, miesiąc - 1, 1)` to pierwszy dzień miesiąca (miesiące w `Date` liczą się od zera), a `getDay()` zwraca dzień tygodnia od niedzieli (0) do soboty (6). `(getDay() + 6) % 7` przesuwa niedzielę na koniec, tak jak w polskim kalendarzu.

const year = 2026;
const month = 11; // 1 = styczeń, 12 = grudzień
const firstDay = (new Date(year, month - 1, 1).getDay() + 6) % 7; // 0 = poniedziałek
const days = 30;
const RED = '\x1b[31m';
const RESET = '\x1b[0m';

console.log('Pn Wt Śr Cz Pt ' + RED + 'So Nd' + RESET);
let line = '   '.repeat(firstDay);
for (let i = 1; i <= days; i++) {
  const cell = String(i).padStart(2);
  const column = (firstDay + i - 1) % 7;
  line += (column >= 5 ? RED + cell + RESET : cell) + ' ';
  if ((firstDay + i) % 7 === 0) {
    console.log(line);
    line = '';
  }
}
if (line !== '') console.log(line);

Ł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.