如何在Ruby中找到周末的日期?

Ben*_*man 5 ruby ruby-on-rails date

我在Ruby中有以下日期对象

Date.new(2009, 11, 19)
Run Code Online (Sandbox Code Playgroud)

我怎么能在下周五找到?

ret*_*eto 13

您可以使用end_of_week(AFAIK仅在Rails中可用)

>> Date.new(2009, 11, 19).end_of_week - 2
=> Fri, 20 Nov 2009
Run Code Online (Sandbox Code Playgroud)

但这可能不起作用,取决于你想要什么.另一种方式可能是

>> d = Date.new(2009, 11, 19)
>> (d..(d+7)).find{|d| d.cwday == 5}
=> Fri, 20 Nov 2009
Run Code Online (Sandbox Code Playgroud)

如果d已经是星期五,我们假设您想要下周五:

>> d = Date.new(2009, 11, 20) # was friday
>> ((d+1)..(d+7)).find{|d| d.cwday == 5}
=> Fri, 27 Nov 2009
Run Code Online (Sandbox Code Playgroud)


ben*_*sie 1

Rails 的ActiveSupport::CoreExtensions::Date::Calculations具有可以帮助您的方法。如果您不使用 Rails,则可能只需要 ActiveSupport。