2012-10-09 2 views
2

저는 아직 완전히 루비에 익숙하지 않지만이 문제는 반나절 동안 지속되었습니다.Ruby : 날짜 배열을 하루에 발생하는 배열로 변환합니다.

정수 배열 (예 : [1351136194, 1350142662, 1350118879])의 날짜 배열을 가지고 있으며 다음 30 일 동안 하루에 발생 횟수를 포함하는 배열로 변환하려고합니다.

기본적으로 나는 예를 들어 쿼리 할 수 ​​있기를 원합니다. array[0] 오늘의 범위 내에있는 날짜의 수는 내일 등 array[1]입니다.

도움이 되셨을 것입니다.

답변

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} 
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} 
: 그런 다음 배열을 만들
관련 문제