在我的 Rails 应用程序中,我需要从其他日期开始获取特定工作日的下一次出现的日期。所以基本上我需要date.next_monday
,date.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
这似乎工作正常。我的问题是:
- 我不需要做所有这些吗?(有什么方法可以让我没有想到 next_ 吗?
- 如果我所做的是必要的,有没有更好的方法来获取工作日数组?
谢谢!