0

在我的 Rails 应用程序中,我需要从其他日期开始获取特定工作日的下一次出现的日期。所以基本上我需要date.next_mondaydate.next_wednesday输入函数。我认为标准 Ruby 库中不存在这些,所以我决定像这样修改 Date 类:

class Date
  weekdays = [:sunday, :monday, :tuesday, :wednesday, :thursday, :friday, :saturday]
  weekdays.each do |weekday|
    method_name = "next_" + weekday.to_s
    send :define_method, method_name do
      tmp_date = self + 1
      until tmp_date.send((weekday.to_s + "?").to_sym)
        tmp_date = tmp_date + 1
      end
      tmp_date
    end
  end
end

这似乎工作正常。我的问题是:

  1. 我不需要做所有这些吗?(有什么方法可以让我没有想到 next_ 吗?
  2. 如果我所做的是必要的,有没有更好的方法来获取工作日数组?

谢谢!

4

1 回答 1

1

该类Date定义了一个DAYNAMES常量(以及许多其他有用的常量),您可以使用它来替换您的数组。

于 2012-04-30T18:47:08.270 回答