Encontre a data média da coleta de datas (Ruby)
-
21-09-2019 - |
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.
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