世の中では月の最終金曜日をプレミアムフライデーと呼ぶそうですね(目をそらしながら)
Perl6 でそのプレミアムフライデーを求めてみたいと思います。
ソース
Perl6 の Date や DateTime には最終◯曜日を求めるメソッドは無かった筈なので一手間必要です。
pf.pl6
# 金曜日は5
my Int $friday := 5;
# 2017年02月からスタート
my DateTime $d .= new( :2017year :2month :1day :15hour :0minute :0second );
# 100ヶ月分のプレミアムフライデー
for 0..^100 -> $later {
# 翌月初の1日前、つまり当月末日
my DateTime $e = $d.clone.later(month => $later + 1).earlier(day => 1);
# 当月末日の曜日
my Int $dow = $e.day-of-week;
# 金曜日からの差分(日数)
my Int $diff = ($dow >= $friday) ?? $dow - $friday !! 7 + $dow - $friday;
# 当月末日から、差分だけ前の日
say $e.earlier(day => $diff);
}
出力
2017-02-24T15:00:00Z
2017-03-31T15:00:00Z
2017-04-28T15:00:00Z
2017-05-26T15:00:00Z
2017-06-30T15:00:00Z
2017-07-28T15:00:00Z
2017-08-25T15:00:00Z
2017-09-29T15:00:00Z
2017-10-27T15:00:00Z
2017-11-24T15:00:00Z
2017-12-29T15:00:00Z
2018-01-26T15:00:00Z
2018-02-23T15:00:00Z
2018-03-30T15:00:00Z
2018-04-27T15:00:00Z
2018-05-25T15:00:00Z
2018-06-29T15:00:00Z
2018-07-27T15:00:00Z
2018-08-31T15:00:00Z
2018-09-28T15:00:00Z
2018-10-26T15:00:00Z
2018-11-30T15:00:00Z
2018-12-28T15:00:00Z
2019-01-25T15:00:00Z
2019-02-22T15:00:00Z
2019-03-29T15:00:00Z
2019-04-26T15:00:00Z
2019-05-31T15:00:00Z
2019-06-28T15:00:00Z
2019-07-26T15:00:00Z
2019-08-30T15:00:00Z
2019-09-27T15:00:00Z
2019-10-25T15:00:00Z
2019-11-29T15:00:00Z
2019-12-27T15:00:00Z
2020-01-31T15:00:00Z
2020-02-28T15:00:00Z
2020-03-27T15:00:00Z
2020-04-24T15:00:00Z
2020-05-29T15:00:00Z
2020-06-26T15:00:00Z
2020-07-31T15:00:00Z
2020-08-28T15:00:00Z
2020-09-25T15:00:00Z
2020-10-30T15:00:00Z
2020-11-27T15:00:00Z
2020-12-25T15:00:00Z
2021-01-29T15:00:00Z
2021-02-26T15:00:00Z
2021-03-26T15:00:00Z
2021-04-30T15:00:00Z
2021-05-28T15:00:00Z
2021-06-25T15:00:00Z
2021-07-30T15:00:00Z
2021-08-27T15:00:00Z
2021-09-24T15:00:00Z
2021-10-29T15:00:00Z
2021-11-26T15:00:00Z
2021-12-31T15:00:00Z
2022-01-28T15:00:00Z
2022-02-25T15:00:00Z
2022-03-25T15:00:00Z
2022-04-29T15:00:00Z
2022-05-27T15:00:00Z
2022-06-24T15:00:00Z
2022-07-29T15:00:00Z
2022-08-26T15:00:00Z
2022-09-30T15:00:00Z
2022-10-28T15:00:00Z
2022-11-25T15:00:00Z
2022-12-30T15:00:00Z
2023-01-27T15:00:00Z
2023-02-24T15:00:00Z
2023-03-31T15:00:00Z
2023-04-28T15:00:00Z
2023-05-26T15:00:00Z
2023-06-30T15:00:00Z
2023-07-28T15:00:00Z
2023-08-25T15:00:00Z
2023-09-29T15:00:00Z
2023-10-27T15:00:00Z
2023-11-24T15:00:00Z
2023-12-29T15:00:00Z
2024-01-26T15:00:00Z
2024-02-23T15:00:00Z
2024-03-29T15:00:00Z
2024-04-26T15:00:00Z
2024-05-31T15:00:00Z
2024-06-28T15:00:00Z
2024-07-26T15:00:00Z
2024-08-30T15:00:00Z
2024-09-27T15:00:00Z
2024-10-25T15:00:00Z
2024-11-29T15:00:00Z
2024-12-27T15:00:00Z
2025-01-31T15:00:00Z
2025-02-28T15:00:00Z
2025-03-28T15:00:00Z
2025-04-25T15:00:00Z
2025-05-30T15:00:00Z
あわせて読みたい
おわり
おわりです