我对 ruby 还是很陌生,但在这个问题上已经卡了半天了。
我有一个整数形式的日期数组(例如[1351136194, 1350142662, 1350118879]
),我试图将其转换为一个数组,其中包含接下来 30 天每天发生的次数。
基本上,我希望能够查询例如array[0]
今天范围内的日期数,array[1]
明天等。
任何帮助,将不胜感激。
我对 ruby 还是很陌生,但在这个问题上已经卡了半天了。
我有一个整数形式的日期数组(例如[1351136194, 1350142662, 1350118879]
),我试图将其转换为一个数组,其中包含接下来 30 天每天发生的次数。
基本上,我希望能够查询例如array[0]
今天范围内的日期数,array[1]
明天等。
任何帮助,将不胜感激。
像这样的东西应该工作。基本上,您将时间转换为日期,然后将它们分组,以便您轻松识别重复项。然后创建数组:
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}
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}