寻找棕榈星期天

时间:2018-05-09 08:24:37

标签: 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);

使用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更容易找到,我真的很想找到这种意外行为的根源。

1 个答案:

答案 0 :(得分:5)

感谢Simon的reportPR,感谢@simbabque的测试!我已发货v0.44 to CPAN。你是开源社区的优秀公民!

- chansen