繁体   English   中英

Ruby按日期计数项目

[英]Ruby count items by date

我有一系列日期,例如

Fri Jan 28 10:13:19 UTC 2011
Thu Jan 27 16:57:59 UTC 2011
Thu Jan 27 16:41:21 UTC 2011
Wed Jan 26 09:20:48 UTC 2011
Mon Jan 24 16:19:48 UTC 2011
Fri Jan 21 11:45:34 UTC 2011
Fri Jan 21 11:42:19 UTC 2011

如何将它们分组,以便输出为每天包含项目计数的哈希值:

Friday 28 => 1
Thursday 27 => 2
Wednesday 26 => 1
Monday 24 => 1
Friday 21 => 2
@things.group_by {|thing| thing.strftime "%A %d" }.each do |key, group|
  puts "#{key} => #{group.size}"
end

%A是完整的工作日名称, %d是该月的某天

我目前无法对此进行测试,但我认为它会起作用。

s=a.inject(Hash.new(0)) do |h,y|
    z=y.split
    h[ z[0]+z[2] ]+=1
    h
end

或者,更详细地使用久米的解决方案并使用吉米的strftime:

histogram = dates.inject(Hash.new(0)) do |hist, date|
  hist[date.strftime('%A %d')] += 1
  hist 
end.sort_by{|date, count| date.split(' ').last}.reverse

给我们:

Friday 28: 1
Thursday 27: 2
Wednesday 26: 1
Monday 24: 1
Friday 21: 2

好?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM