两次约会之间的平均时间



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

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

对于给定的用户非常有效。现在我想遍历所有用户并获取平均值。如何做到这一点呢?

你可以试试:

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

或者你可以试试这个:

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 }

相关内容

  • 没有找到相关文章

最新更新