2010-02-18 17 views
11

Tahminlerim var, her tahmininiz sadece bir tarih. İki ya da daha fazla tarihi ortalamaya çevirmek için nasıl giderim diye merak ediyordum. Tarihlerden toplama ortalama tarih (Ruby)

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

Böyle bir şey

, ama besbelli Yakut beni iki tarihleri ​​bölmek izin vermez.

+0

Gerçek dünyada iki tarihin ortalaması nedir? İki tarih arasındaki tarihin yarısını bulmayı mı düşünüyorsun? 100 tarihiniz olsaydı, ortalamaları kavramsal olarak ne olurdu? – Simon

+0

Belki de siteye link verirseniz daha kolay, http://www.expct.info/products/3 2010-03-18 ve 2010-02-18 iki tarihini görebilirsiniz, id ortalama iki ve kalabalıklar bilgelik koşum, daha fazla insan iPads serbest bırakmak için daha yakın oyla * oy * gerekir. Örneğimdeki ortalama, Date.today + 5 –

cevap

13

Tarihi Eğer Zaman kullanmalısınız, çalışmak için biraz zor);

+0

olacaktır. Yardım için teşekkürler, harikalar :) –

2
to_time.to_i 

arkadaşım var. Times içine Tarihlerini dönüştürmeyi deneyin:

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

damgaları onları dönüştürme, daha sonra ortalamayı hesaplamak, daha sonra bir süre geri dönüştürmek:

avg_date = Date.parse(avg.to_s) 
:

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

Sen Tarihi geri dönüştürmek