2010-02-18 22 views
11

Tengo una tabla de conjeturas, dentro de cada conjetura hay solo una fecha. Me preguntaba cómo convertiría dos o más fechas en un promedio.Encontrar la fecha promedio de la colección de fechas (Ruby)

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

Algo como esto, pero es evidente que Ruby no me deja dividir las dos fechas.

+0

¿Qué significa el promedio de dos fechas en el mundo real? ¿Estás tratando de encontrar la fecha a medio camino entre dos fechas? Si tuviera 100 fechas, ¿cuál sería su promedio conceptual? – Simon

+0

Tal vez sea más fácil si me enlace al sitio, http://www.expct.info/products/3 puede ver las dos fechas 2010-03-18 y 2010-02-18, id como para generar el promedio del dos y aprovechar la sabiduría de las multitudes, mientras más personas voten, más cerca de la fecha actual de lanzamiento de los iPads * debe * obtenerse. Supongo que el promedio en mi ejemplo sería Date.today + 5 –

Respuesta

13

Fecha es un poco difícil de trabajar, se debe utilizar el Tiempo. Pruebas a convertir las fechas en Tiempos:

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

Convertir a las marcas de tiempo, y luego calcular el promedio, a continuación, convertir de nuevo a Hora:

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

Usted puede convertir ese nuevo a Fecha:

avg_date = Date.parse(avg.to_s) 
+0

Muchas gracias por la ayuda, eso es genial :) –

2
to_time.to_i 

es mi amigo;)

Cuestiones relacionadas