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))
由于棕榈星期日总是在复活节星期日前7天,我可以用Time::Moment
's minus_days(7)
实现这一点,但是因为我想找到一些其他假期,使用Time::Moment::Adjusters
更容易找到,我真的很想找到这种意外行为的根源。