Cha*_*ory 12 ruby-on-rails date
鉴于约会,我如何在Rails中找到最近的星期一?
我知道我可以这样做:
Date.tomorrow Date.today
有没有像Date.nearest:星期一?
sgr*_*usa 20
该商业 Date对象的方法可以让你做到这一点.这个例子将在下周一给你.
Date.commercial(Date.today.year, 1+Date.today.cweek, 1)
Run Code Online (Sandbox Code Playgroud)
如果您需要下一个或上一个星期一,以最接近的为准,您可以:
Date.commercial(Date.today.year, Date.today.cwday.modulo(4)+Date.today.cweek, 1)
Run Code Online (Sandbox Code Playgroud)
我现在无法执行此操作,因此如果存在语法错误,请原谅我.
Ale*_*ein 10
这有点棘手,但计算起来并不那么难.
使用ActiveSupport::DateAndTimeCalculations#end_of_week计算周结束,这个方法接受一个start_day用来指示一周(这是开始一天的参数:monday默认情况下).他们甚至实施了sunday方法.
诀窍如下:如果你想计算最接近的星期一,你可以把它计算为星期二开始的星期结束(星期二=>第1天,星期三=>第2天,......,星期一=>第7天这也是一周的结束).
所以你需要做的就是:
# it will return current date if today is Monday and nearest Monday otherwise
Date.today.end_of_week(:tuesday)
Run Code Online (Sandbox Code Playgroud)
我知道这是一个旧线程,但是将其保持最新以供将来的求助者总是很好。
假设今天是8月19日星期五。我要弄到最近的星期一的事情是这样的:
monday = Date.today.monday
Run Code Online (Sandbox Code Playgroud)
然后从那里可以像这样返回一周或向前一周:
last_monday = monday.last_week
next_monday = monday.next_week
Run Code Online (Sandbox Code Playgroud)