Krok 3: pierwsza niedziela po pełni, czyli pętla
Kalendarz ze świętami, notatkami i językami - Kalendarz w JavaScript krok po kroku (JavaScript)
Skoro znamy dzień pełni, niedzielę po niej można po prostu znaleźć: pętla `do ... while` przesuwa datę o dzień, dopóki `getDay()` nie da 0 (niedziela). `do` gwarantuje co najmniej jeden krok, więc gdy pełnia wypada w niedzielę, Wielkanoc jest tydzień później, tak jak każe reguła.
const WEEKDAYS = ['niedziela', 'poniedziałek', 'wtorek', 'środa', 'czwartek', 'piątek', 'sobota'];
const pad = n => String(n).padStart(2, '0');
const fmt = date => `${pad(date.getDate())}.${pad(date.getMonth() + 1)}`;
for (let year = 2024; year <= 2030; year++) {
const a = year % 19; // miejsce roku w 19-letnim cyklu Księżyca
const d = (19 * a + 24) % 30; // ile dni po 21 marca wypada wiosenna pełnia
const fullMoon = new Date(year, 2, 21 + d); // marzec, nadmiar dni przechodzi na kwiecień
const sunday = new Date(fullMoon);
do {
sunday.setDate(sunday.getDate() + 1);
} while (sunday.getDay() !== 0);
console.log(`${year}: pełnia ${fmt(fullMoon)} (${WEEKDAYS[fullMoon.getDay()]}), Wielkanoc ${fmt(sunday)}`);
}Ł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.