在Perl 6中查找上周五的日期?

问题描述 投票:4回答:2

我想生成一个序列,该序列在上个星期五从星期一到星期四结束,如果序列在星期六和星期日开始,则在上一周的星期五结束。也就是说,假设今天是2018-05-09,那么上周五是2018-05-04,如果今天是2018-05-12,那么最后一个星期五是[[also 2018-05-04。所以我写:

(Date.today, *.earlier(:1day) ... ( *.day-of-week==5 && *.week[1]+1==Date.today.week[1] )).tail # Output: 2018-05-06
但是结果是2018-05-06而不是2018-05-04

然后我使用了Junction

(Date.today, *.earlier(:1day) ... all( *.day-of-week==5, *.week[1]+1==Date.today.week[1] )).tail # Output: 2018-05-04

为什么第一种情况下的&&错误? ...运算符说:

右侧将有一个终结点,对于“无限”列表(其元素仅按需生成)可以是Inf或*,该表达式将在True时结束序列,或其他元素(例如Junctions)。

&&运算符怎么了?

date sequence perl6 raku
2个回答
5
投票
问题是您的结局状况

*.day-of-week==5 && *.week[1]+1==Date.today.week[1]


2
投票
此顺序从今天到最后一个星期五:
© www.soinside.com 2019 - 2024. All rights reserved.