寻找棕榈星期天

Sim*_*ine 4 perl datetime

棕榈星期日是复活节前的星期天.通过以下方式可以实现复活节周日:

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):

$adjuster = PreviousDayOfWeek($day);
Run Code Online (Sandbox Code Playgroud)

$adjuster日期调整为日期之前的给定日期[1 =星期一,7 =星期日]的上一次出现.

但如果我申请这个调整员,我会在五天前得到一个星期二!

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

由于棕榈周日总是先于复活节周日七天我可以做到这一点Time::Momentminus_days(7),但因为我想找到一个数字,要简单得多发现使用其他假期的Time::Moment::Adjusters,我真的想找到这个意外的根行为.

cha*_*sen 5

感谢Simon的报告PR,感谢@simbabque的测试!我已将v0.44发送到CPAN.您是开源社区的优秀公民!

- chansen