繁体   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