Krok 2: Wielkanoc zależy od pełni Księżyca

Kalendarz ze świętami, notatkami i językami - Kalendarz w JavaScript krok po kroku (JavaScript)

Wielkanoc to pierwsza niedziela po pierwszej wiosennej pełni Księżyca (liczonej od 21 marca). Fazy Księżyca powtarzają się prawie dokładnie co 19 lat, więc `a = year % 19` mówi, w którym miejscu tego cyklu jest rok. Rok księżycowy jest o 11 dni krótszy od słonecznego, stąd co rok pełnia przesuwa się o 11 dni (19 to to samo co -11, gdy liczymy modulo 30). `d = (19 * a + 24) % 30` to liczba dni od 21 marca do pełni; 24 to stała dla lat 1900-2099. Program pokazuje te wartości i datę pełni.

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ń
  console.log(`${year}: a = ${a}, d = ${d}, pełnia ${fmt(fullMoon)} (${WEEKDAYS[fullMoon.getDay()]})`);
}

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