How to generate a random date in Ruby?
Here's a slight expansion on Chris' answer, with optional from
and to
parameters:
def time_rand from = 0.0, to = Time.now Time.at(from + rand * (to.to_f - from.to_f))end> time_rand => 1977-11-02 04:42:02 0100 > time_rand Time.local(2010, 1, 1) => 2010-07-17 00:22:42 0200 > time_rand Time.local(2010, 1, 1), Time.local(2010, 7, 1) => 2010-06-28 06:44:27 0200
Keeping simple..
Date.today-rand(10000) #for previous datesDate.today+rand(10000) #for future dates
PS. Increasing/Decreasing the '10000' parameter, changes the range of dates available.