我试图使用DateTime来查看日期列表,并查找最常与列表中的每个日期关联的星期几(星期一,星期二,星期三,& c。)。使用DateTime从日期打印日期名称?
我想这一点:
contents = CSV.open 'event_attendees.csv', headers: true, header_converters: :symbol
contents.each do |row|
times = contents.map { |row| row[:regdate] }
target_days = Hash[times.group_by { |t| DateTime.strptime(t, '%m/%d/%Y %H:%M').wday }.map{|k,v| [k, v.count]}.sort_by{ |k,v| v }.reverse]
puts target_days
我得到:
{1=>6, 2=>5, 5=>4, 6=>2, 0=>1}
从我了解wday每天将表示为0(星期日),1(星期一),&Ç什么。我难以理解如何将其转换为当天的实际名称?或者,如何将其转换为缩写名称(Sun,Mon,Tue,& c。)?
此外,我不积极,上述返回正确的日子。看看我的名单,11/12/2008有六个日期。 2008年11月12日是一个星期三 - 但它看起来像是显示最常见的一天,计数为6,是星期一。所以,我不确定这是否真的在计算一周中的正确日期。
有人可以请解释为什么我所做的似乎并没有计算一周的正确日期,也 - 如何将其转换为一天的名称和缩写名称?
谢谢!
这正是我想弄明白的。谢谢!我想出了为什么它会出现错误的一周 - 我意外地有%Y,它应该是%y。 – Robbie