Pergunta

Eu tenho uma tabela de palpites, dentro de cada palpite é apenas uma data. Eu queria saber como eu iria transformar duas ou mais datas em média.

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

Algo assim, mas obviamente Ruby não me deixa dividir as duas datas.

Foi útil?

Solução

A data é um pouco difícil de trabalhar, você deve usar o tempo. Tente converter as datas em tempos:

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

Converta -os em registros de data e hora, calcule a média e converta de volta ao tempo:

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

Você pode converter isso de volta ao data:

avg_date = Date.parse(avg.to_s)

Outras dicas

to_time.to_i

É meu amigo ;)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top