我試圖使用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