[英]Extracting date values from hashes within Ruby array
我有一個包含一系列哈希的數組,如下所示。
[{:pgs=>6, :oo=>"No", :ms_no=>"D3273", :auth=>"Johnson", :ms_recd=>"Mar 14", :ready_for_ce=>"Mar 15", :proj_back_from_ce=>"Apr 1", :final_ok=>"Jul 25", :pub_date=>"Aug 5", :notes=>" "},
{:pgs=>17, :oo=>"No", :ms_no=>"R4382", :auth=>"Jacobs", :ms_recd=>"Apr 12", :ready_for_ce=>"Apr 16", :proj_back_from_ce=>"May 17", :final_ok=>"Jul 10", :pub_date=>"June 10 ", :notes=>" "},
{:pgs=>15, :oo=>"No", :ms_no=>"L3291", :auth=>"Smith", :ms_recd=>"Mar 25", :ready_for_ce=>"Mar 26", :proj_back_from_ce=>"Apr 22", :final_ok=>"Jun 21", :pub_date=>"Aug 10 ", :notes=>"Au prompted for cx 4/30", nil=>" 5/15."}]
我需要在每個哈希中取兩個兩個日期值:一個帶有密鑰:ms_recd
,另一個帶密鑰:pub_date
。 然后,我將確定兩個日期范圍之間的天數(例如,18天)。
幸運的是,我最后一部分已經弄明白了。 我只需要做
ms_recd1 = DateTime.parse('Apr 24')
pub_date1 = DateTime.parse('Aug 15')
(pub_date1 - ms_recd1).to_i
返回115
(表示115天)。 所以讓我們說三個哈希值,我將拉出115,162和94天的日期范圍,然后我將它平均為123.6天。
我的問題是,如何從這個數組中提取這些日期值來做到這一點? 我覺得這應該很簡單,但我無法弄清楚它應該如何運作。
我的問題是,如何從這個數組中提取這些日期值來做到這一點?
你可以寫這些日期:
array.map{|h| h.values_at(:ms_recd,:pub_date)}
完整解決方案@robertodecurnex評論說:
array.map{|h| (DateTime.parse(h[:pub_date]) - DateTime.parse(h[:ms_recd])).to_i}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.