Ruby 按日期计算项目

标签 ruby date parsing

我有一个日期数组,例如

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

最佳答案

或者,更详细地介绍 kurumi 的解决方案并使用 Jimmy 的 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

好吗?

关于Ruby 按日期计算项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4828920/

相关文章:

Python:msg.get_payload() 丢弃所需的数据,需要解决方案

ruby - 无法通过 RVM 安装 Ruby 2.0.0

ruby-on-rails - Ruby Rails %r 和 %w

ruby - Ruby 中的数组容量限制

ruby - 如何在 Ruby 中解析打印格式样式的字符串

php - 未找到类 'App\Http\Controllers\IntlDateFormatter'

Mysql - 根据条件计算连续日期并获取范围列表

javascript - 如何将变量更改为数组中的下一个字符串

android - 使用 InputStream 进行 Moshi 解析

asp.net - 从通过 __doPostBack() 完成的页面中使用 Python 的 urllib 检索信息?