棕榈星期日是复活节前的星期天.通过以下方式可以实现复活节周日:
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);
Run Code Online (Sandbox Code Playgroud)
找到之前的星期日可以用Time::Moment::Adjusters'PreviousDayOfWeek(7):
Run Code Online (Sandbox Code Playgroud)$adjuster = PreviousDayOfWeek($day);将
$adjuster日期调整为日期之前的给定日期[1 =星期一,7 =星期日]的上一次出现.
但如果我申请这个调整员,我会在五天前得到一个星期二!
# 2018-03-27T00:00:00Z
my $palm_sunday = $easter_sunday->with(PreviousDayOfWeek(7))
Run Code Online (Sandbox Code Playgroud)
由于棕榈周日总是先于复活节周日七天我可以做到这一点Time::Moment的minus_days(7),但因为我想找到一个数字,要简单得多发现使用其他假期的Time::Moment::Adjusters,我真的想找到这个意外的根行为.