2

我对 ruby​​ 还是很陌生,但在这个问题上已经卡了半天了。

我有一个整数形式的日期数组(例如[1351136194, 1350142662, 1350118879]),我试图将其转换为一个数组,其中包含接下来 30 天每天发生的次数。

基本上,我希望能够查询例如array[0]今天范围内的日期数,array[1]明天等。

任何帮助,将不胜感激。

4

2 回答 2

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}
于 2012-10-09T06:44:46.460 回答
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}
于 2012-10-09T06:49:21.467 回答