我仍然对红宝石很新,但已经坚持了半天这个问题。
我有一个整数形式的日期数组(例如[1351136194, 1350142662, 1350118879]
),我正在尝试将其变成一个数组,其中包含接下来30天内每天的出现次数。
基本上,我希望能够查询,例如array[0]
代表今天范围内的日期数量,array[1]
代表明天等等。
任何帮助都将不胜感激。
答案 0 :(得分:2)
这样的事情应该有效。基本上,您将时间转换为日期,然后将它们分组,以便您可以轻松识别重复项。然后创建数组:
times = [1351136194, 1350142662, 1350118879]
dates = times.map{|t| Time.at(t).to_date}
occurences = dates.group_by{|d| d}
occurences_by_day = (Date.today..(Date.today + 30)).map{|d| occurences[d] ? occurences[d].size : 0}
答案 1 :(得分:0)
arr = [1351136194, 1350142662, 1350118879]
hash = {}
arr.each do |int_date|
date = Time.at(int_date).strftime("%d-%b-%Y")
hash.has_key?(date) ? hash[date] += 1 : hash[date] = 1
end
puts hash #{"25-Oct-2012"=>1, "13-Oct-2012"=>2}