Puj*_*arg 5 ruby ruby-on-rails ruby-on-rails-6
嗨,我想从今天开始形成一个接下来 7 天的数组,例如:假设今天是星期天,所以结果应该是
["Sunday","Monday","Tuesday",'Wednesday","Thursday","Friday","Saturday"]
Run Code Online (Sandbox Code Playgroud)
require 'date'
Date::DAYNAMES.rotate(Date.today.wday)
#=> ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday",
# "Friday", "Saturday"]
Run Code Online (Sandbox Code Playgroud)
因为Date.today.wday #=> 0(周日)。如果今天是星期二,Date.today.wday #=> 2那么
Date::DAYNAMES.rotate(2)
#=> ["Tuesday", "Wednesday", "Thursday", "Friday", "Saturday",
# "Sunday", "Monday"]
Run Code Online (Sandbox Code Playgroud)
请参阅数组#旋转。
这是一个很好的小衬里,可以做你想做的事。
(0..6).map{ |n| (Date.today+n).strftime("%A")}
Run Code Online (Sandbox Code Playgroud)
假设今天是星期六,这将产生:
["Saturday", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]
Run Code Online (Sandbox Code Playgroud)
每个部分的快速解释:
(0..6)创建一个数字数组:[0, 1, 2, 3, 4, 5, 6]。
.map { |n| ... }是在上述数组上调用的函数,它一次将每个元素作为n。
(Date.today+n)是代表今天的对象(基于您的系统时钟)。它允许您向其添加一个数字来偏移日期,从而创建一个新对象。
最后.strftime("%A")}在偏移日期对象上调用以从日期对象生成字符串。该"%A"是本周的字符串一天的格式指令。
使用 Ruby on Rails,您可以这样做:
today = DateTime.now
(today..(today + 7.days)).map { |date| date.strftime("%A") }
=> ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
Run Code Online (Sandbox Code Playgroud)
您将控制接下来的尺寸修改7.days部分。
| 归档时间: |
|
| 查看次数: |
247 次 |
| 最近记录: |