我有一個猜測表,在每個猜測內只是一個日期。我想知道如何將兩個或更多日期轉換爲平均值。查找日期集合中的平均日期(紅寶石)
<div id="logic">
<% foo = Date.today %>
<% bar = Date.today + 10 %>
<%= (foo + bar)/2 %>
這樣的事情,但顯然紅寶石不會讓我分開兩個日期。
我有一個猜測表,在每個猜測內只是一個日期。我想知道如何將兩個或更多日期轉換爲平均值。查找日期集合中的平均日期(紅寶石)
<div id="logic">
<% foo = Date.today %>
<% bar = Date.today + 10 %>
<%= (foo + bar)/2 %>
這樣的事情,但顯然紅寶石不會讓我分開兩個日期。
日期是有點辛苦的工作,你應該使用時間。嘗試轉換的日期,時間:
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)
非常感謝您的幫助,這真棒:) – 2010-02-18 23:27:27
to_time.to_i
是我的朋友;)
兩個日期的平均值在現實世界中的平均值是多少?你是否想在兩個日期之間找到日期的一半?如果你有100個日期,他們的平均概念是什麼? – Simon 2010-02-18 10:52:44
也許它更容易,如果我鏈接到網站,你可以看到兩個日期2010-03-18和2010-02-18,喜歡輸出的平均值的網站http://www.expct.info/products/3並且利用人羣的智慧,越多的人投票越接近它應該得到的iPad發佈的實際日期。 我想我的例子中的平均值是Date.today + 5 – 2010-02-18 11:07:03