ruby on rails - horas - ¿Cómo generar una fecha y hora aleatoria entre dos fechas?
generar horas aleatorias en excel (8)
Calcule la diferencia, por ejemplo, en minutos entre las dos fechas, genere un número aleatorio entre 0 y ese número, y agregue esa cantidad de minutos a la primera fecha.
Sin embargo, no pase por alto la parte de "fecha y hora".
Debería poder generar fechas / tiempos aleatorios dentro de un cierto rango.
now = Time.now
a_day_ago = now - 60 * 60 * 24
random_time = rand(a_day_ago..now)
# with activesupport required
up_to_a_year_ago = rand(1.year.ago..Time.now)
Sus entradas deben ser de la clase Time
o convertidas en una.
También podría hacer un rango de tiempo en tiempo de época y luego usar Time#at
.
now = Time.now.to_i
minute_ago = (Time.now - 60).to_i
Time.at(rand(minute_ago..now))
No sé sobre ruby, pero ¿por qué no genera un entero y lo usa junto con una marca de tiempo? Luego simplemente convierta la marca de tiempo al formato deseado.
Si conoce el punto medio y el rango de desplazamiento en cualquier lado del punto medio, puede usar mi gema ish: https://github.com/spilliton/ish
mid_date.ish(:offset => 60.days)
Usa el método rand()
.
require ''time''
t1 = Time.parse("2015-11-16 14:40:34")
t2 = Time.parse("2015-11-20 16:20:23")
puts rand(t1..t2)
Use time.to_i()
(vea la clase Time
) para convertir sus fechas a números enteros, seleccione al azar entre esos dos valores, luego reconvertir a time and date con Time.at()
.
Time.at((date2.to_f - date1.to_f)*rand + date1.to_f)
Obtendrá un objeto de tiempo entre dos fechas determinadas.
Time.at(rand(Time.parse(''some date'').to_i..Time.now.to_i))