在Ruby中找到"下周二"

waz*_*aza 0 ruby ruby-on-rails date

require 'active_support/all'
days = 0.day.ago
days += 1 until days.since.wday == 2 
next_tuesday = days.since
Run Code Online (Sandbox Code Playgroud)

上面的代码做得不对.但是下面是正确的.你能告诉我为什么吗?

require 'active_support/all'
current_day = 0.day.ago
current_day += 1.day until current_day.wday == 2
next_tuesday = current_day
Run Code Online (Sandbox Code Playgroud)

Ped*_*nto 7

首先,请注意您使用的是ActiveSupport,因此这不是纯Ruby.假设,在ActiveSupport中捆绑的方法更简单:

Time.now.next_week(:tuesday)
Run Code Online (Sandbox Code Playgroud)

  • 我认为他的意思是它不是stdlib的一部分. (3认同)