В поисках Вербного воскресенья - PullRequest
0 голосов
/ 09 мая 2018

Вербное воскресенье - воскресенье перед пасхальным воскресеньем. Найти пасхальное воскресенье можно с помощью:

use Time::Moment;
use Time::Moment::Adjusters qw(WesternEasterSunday PreviousDayOfWeek);

# 2018-04-01T00:00:00Z
my $easter_sunday = Time::Moment->new(year => 2018)->with(WesternEasterSunday);

Поиск воскресенья до того, как это может быть достигнуто с помощью Time::Moment::Adjusters 'PreviousDayOfWeek(7):

$adjuster = PreviousDayOfWeek($day);

$adjuster устанавливает дату в соответствии с предыдущим вхождением данного дня недели [1 = понедельник, 7 = воскресенье] перед датой.

Но если я применю этот регулятор, я получу вторник на пять дней раньше!

# 2018-03-27T00:00:00Z
my $palm_sunday = $easter_sunday->with(PreviousDayOfWeek(7))

Поскольку Вербное воскресенье всегда остается за семь дней до Пасхального воскресенья, я мог бы добиться этого с помощью Time::Moment 'minus_days(7), но, поскольку я хочу найти ряд других праздников, которые намного проще чтобы найти с помощью Time::Moment::Adjusters, я действительно хотел бы найти корень этого неожиданного поведения.

1 Ответ

0 голосов
/ 09 мая 2018

Спасибо, Саймон, за отчет и PR и спасибо @simbabque за тест! Я отправил v0.44 в CPAN . Вы отличные граждане в сообществе OpenSource!

- chansen

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...