簡體   English   中英

從Ruby數組中的哈希中提取日期值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM