在我的Rails应用程序中,我需要查找给定日期是否是该月的第二个或第四个星期六。有效的方法是什么?我有可以使用的宝石吗?
答案 0 :(得分:4)
第二个星期六必须是8-14天,第二个星期六是22-28。所以我认为这应该有用
def second_or_forth_saturday?(date)
return false unless date.saturday?
(8..14).include?(date.day) || (22..28).include?(date.day)
end
答案 1 :(得分:3)
要获取周ID,我们可以计算(date.day-1)/7
。由于id是从零开始的,所以第二个和第四个星期六有一个奇数周ID:
def second_or_fourth_saturday?(date)
date.saturday? && ((date.day - 1) / 7).odd?
end
答案 2 :(得分:2)
def fourth_saturday?(date)
saturdays = (date.beginning_of_month..date.end_of_month).select { |date| date.wday == 6 }
[satudays.second, saturdays.fourth].include?(date)
end
正如@Stefan建议的那样,该方法的第一行可以写成如下(使用all_month
):
saturdays = date.all_month.select(&:saturday?)
参考文献: