从数组中获取特定日期对象

时间:2015-06-22 15:30:45

标签: ruby-on-rails ruby

我有一个名为week的数组:

[Mon, 08 Jun 2015, Tue, 09 Jun 2015, Wed, 10 Jun 2015, Thu, 11 Jun 2015, Fri, 12 Jun 2015, Sat, 13 Jun 2015, Sun, 14 Jun 2015]

我需要从数组中获取mon和fri而不使用它们的索引。 反正有吗?

2 个答案:

答案 0 :(得分:3)

Ruby提供Date#monday?Date#friday方法来确定日期是否与特定工作日相匹配。

因此,要在数组中找到星期一,假设数组由Date个实例组成

array.find(&:monday?)

如果它由Time个实例组成,那么<​​/ p>

array.find { |time| time.to_date.monday? }

如果您想同时获得星期一和星期五,只需使用选择

即可
# for Date
array.select { |date| date.monday? || date.friday? }
# for Time
array.select { |time| date = time.to_date && (date.monday? || date.friday?) }

答案 1 :(得分:0)

week = [Mon, 08 Jun 2015, Tue, 09 Jun 2015, Wed, 10 Jun 2015, Thu, 11 Jun 2015, Fri, 12 Jun 2015, Sat, 13 Jun 2015, Sun, 14 Jun 2015]

假设那些是Date个对象,你可以问每个人是否是某个工作日:

week.select { |d| d.monday? || d.friday? }