查找日期集合中的平均日期(Ruby)

时间:2010-02-18 10:49:31

标签: ruby-on-rails ruby date type-conversion average

我有一张猜测表,每次猜测都只是个约会。我想知道如何将两个或更多日期变成平均值。

<div id="logic">
<% foo = Date.today %>
<% bar = Date.today + 10 %>
<%= (foo + bar) / 2 %>

这样的事情,但显然Ruby不会让我分开这两个日期。

2 个答案:

答案 0 :(得分:13)

日期有点难以使用,您应该使用时间。尝试将日期转换为时间:

require 'time'
foo_time = Time.parse(foo.to_s)
bar_time = Time.parse(bar.to_s)

将它们转换为时间戳,然后计算平均值,然后转换回时间:

avg = Time.at((foo_time.to_f + bar_time.to_f) / 2)

您可以将其转换回日期:

avg_date = Date.parse(avg.to_s)

答案 1 :(得分:2)

to_time.to_i

是我的朋友;)