2个日期红宝石之间的平均时间

时间:2011-08-03 04:49:50

标签: ruby-on-rails-3 datetime

我想计算两个日期之间的平均时间(以天为单位)。我想知道每个用户加入后的天数并得到平均值。

(Date.today  -  User.first.created_at.to_date).to_i

适用于特定用户。现在我想循环遍历所有用户并检索平均值。如何完成这样的事情?

2 个答案:

答案 0 :(得分:0)

你可以试试这个:

User.all.map{|u| (Date.today - u.created_at.to_date).to_i}.sum/User.count

答案 1 :(得分:0)

或者你可以试试这个:

User.all.sum { |user| (Time.now - user.created_at) / 1.day }.to_i / User.count

顺便提一下,如果你像这样扩展Ruby的Array

class Array
  def avg(&block)
    sum(&block).to_i / count
  end
end

你可以做一个很好的简短版本:

User.all.avg { |user| (Time.now - user.created_at) / 1.day }