Возникла задача посчитать даты Пасхальных событий.
Нужно, чтобы не вписывать их каждое ежегодно заново, а привязать к дате Пасхи и рассчитывать уже автоматически.
Для этого создаём массив с датами празднования Пасхи по годам:
Этот массив заполняем датами Пасхалии на нужный период, хоть на 100 лет.
Определяем текущий год:
Далее нужно сравнить текущий год и взять из массива соответствующее число и месяц:
И вот тут у меня возникает загвоздка. Как взять число и месяц для текущего года в нужном формате, или может массив нужно делать по-другому?
Дальше, вроде как попроще...
Вычисляем дату Пасхи:
Потом рассчитываем дату Прощённого Воскресенья:
Вербного Воскресенья:
Вознесения:
И Троицы:
Ну и потом, получив отдельно месяц и число каждого события - используем их дальше.
Подскажите, верно ли я представил логику кода?
И, самое главное, как всё-таки вынуть из массива нужные число и месяц по текущему году?..
P.S. В php есть очень хорошие переменные Пасхи - easter_days() и easter_date().
Но в данном случае их нельзя применить, так как они - для католической Пасхи.
А для православной, к сожалению, таких переменных нет (или я их не нашёл)...
Нужно, чтобы не вписывать их каждое ежегодно заново, а привязать к дате Пасхи и рассчитывать уже автоматически.
Для этого создаём массив с датами празднования Пасхи по годам:
PHP:
$pasxa = array("2017" => "16.4",
"2018" => "8.4",
"2019" => "28.4",
"2020" => "19.4");
Определяем текущий год:
PHP:
$year_now = date("Y");
Далее нужно сравнить текущий год и взять из массива соответствующее число и месяц:
PHP:
if ($year_now == ...
И вот тут у меня возникает загвоздка. Как взять число и месяц для текущего года в нужном формате, или может массив нужно делать по-другому?
Дальше, вроде как попроще...
Вычисляем дату Пасхи:
PHP:
$pasxa = strtotime($pasxa);
$pasxa_month = date("n", $pasxa);
$pasxa_day = date("j", $pasxa);
Потом рассчитываем дату Прощённого Воскресенья:
PHP:
$prowenoe = strtotime("-48 day",$pasxa);
$prowenoe_month = date("n", $prowenoe);
$prowenoe_day = date("j", $prowenoe);
Вербного Воскресенья:
PHP:
$verbnoe = strtotime("-1 week",$pasxa);
$verbnoe_month = date("n", $verbnoe);
$verbnoe_day = date("j", $verbnoe);
Вознесения:
PHP:
$voznesenie = strtotime("+39 day",$pasxa);
$voznesenie_month = date("n", $voznesenie);
$voznesenie_day = date("j", $voznesenie);
И Троицы:
PHP:
$trojtca = strtotime("+7 week",$pasxa);
$trojtca_month = date("n", $trojtca);
$trojtca_day = date("j", $trojtca);
Ну и потом, получив отдельно месяц и число каждого события - используем их дальше.
Подскажите, верно ли я представил логику кода?
И, самое главное, как всё-таки вынуть из массива нужные число и месяц по текущему году?..
P.S. В php есть очень хорошие переменные Пасхи - easter_days() и easter_date().
Но в данном случае их нельзя применить, так как они - для католической Пасхи.
А для православной, к сожалению, таких переменных нет (или я их не нашёл)...
Последнее редактирование: