Yine de 'tarih ve saat' bölümüne bakmayın.İki tarih arasında rastgele bir tarih ve saat nasıl oluşturulur?
cevap
Time.at((date2.to_f - date1.to_f)*rand + date1.to_f)
Belirtilen iki zaman arasında olan bir zaman nesnesi alırsınız.
Ruby hakkında bir bilgim yok ama neden sadece bir tamsayı oluşturmuyorsunuz ve zaman damgasıyla birlikte kullanmıyorsunuz? Ardından, zaman damgasını istediğiniz formata dönüştürün.
Örneğin, iki tarih arasındaki dakikadaki farkı hesaplayın, 0 ile bu sayı arasında rastgele bir sayı oluşturun ve ilk tarihe bu dakika sayısını ekleyin.
Tarihlerinizi tamsayıya dönüştürmek için (Time
sınıfına bakın) kullanın, bu iki değer arasında rastgele seçim yapın, ardından Time.at()
ile zamana ve tarihe dönüştürebilirsiniz.
Belirli bir aralıkta rastgele tarih/saat üretebilmeniz gerekir.
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)
Kişisel girişler Time
sınıfı olmak gerekir, ya da olsa birine dönüştürülür.
Ayrıca, zaman aralığında bir zaman aralığı yapabilir ve Time#at
'u kullanabilirsiniz. Eğer orta noktayı ve sen benim imsi mücevher kullanabilirsiniz orta noktasının her iki tarafında kayma aralığını biliyorsanız
now = Time.now.to_i
minute_ago = (Time.now - 60).to_i
Time.at(rand(minute_ago..now))
Bence bu çözüm, şu anda Evgeny tarafından kabul edilen modelden çok daha güzel. – severin
Küçük bir açıklama olsa da: '1.year.ago' sadece * etkinken * çalışıyor * yüklenen * – severin
İyi nokta @severin. Yüklü aktif destekli ve desteksiz kod desteği ekledim. Ayrıca, zaman aralığı aralıkları için bir örnek ekledi. –
: https://github.com/spilliton/ish
mid_date.ish(:offset => 60.days)
rand()
yöntemi kullanın.
require 'time'
t1 = Time.parse("2015-11-16 14:40:34")
t2 = Time.parse("2015-11-20 16:20:23")
puts rand(t1..t2)
Time.at(rand(Time.parse('some date').to_i..Time.now.to_i))
- 1. Tarih ve saat girişi
- 2. Javascript Tarih() geçen tarih ve tarih-saat arasındaki fark
- 3. İki tarih arasındaki tüm tarihler nasıl oluşturulur?
- 4. iki tarih arasındaki bir tarih seçin
- 5. Tarih-saat öğesinin tarih değeri ayarından
- 6. C# Tarih ve saat arasında MySQL tablosundan veri alın
- 7. Java: JPA sınıfları, Tarih Tarih saat
- 8. Python: tarih, saat biçimlendirme
- 9. İki tarih aralığı arasında kesişen gün sayısı
- 10. clojureql iki tarih arasında seçim yapın
- 11. Oracle'da tarih ve saat nasıl eklenir?
- 12. Python'da tarih ve saat nasıl belirlenir?
- 13. Tarih ve saat arasında arama yapın SQL Server 2008
- 14. Ekstralar'da tarih ve saat nasıl görüntülenir
- 15. Android'de yerel tarih ve saat nasıl edinilir?
- 16. SQLite Tarih/Saat Manipülasyon
- 17. İki Tarih Arasında Eksik Tarihler Bul
- 18. iki tarih
- 19. Tarih Saat Dönüşümü
- 20. SerializationError Rails ActiveJob Saat ve Tarih
- 21. Gnuplot x ekseninde tarih/saat
- 22. SQLite veritabanına geçerli tarih ve saat ekleme
- 23. Yerel tarih/saat biçimi nasıl edinilir?
- 24. Yüksek Sunumlar Tarih/Saat ve X Ekseni
- 25. Tarih saat işlevleri yardım informix
- 26. NSDate tarih nesnesi nasıl oluşturulur?
- 27. Tarih/Saat Matematik HQL'de mi?
- 28. Ayrıştırma tarih saat Zeppelin, CSV bilgi ve
- 29. JavaScript milisaniye gelen Tarih ve saat dilimi
- 30. Özel Tarih ve Saat Milisaniye cinsinden dize
Bu büyük bir çözelti, ancak not sırada olabilir olduğu; Tarihinizi 'to_f' olarak adlandırmak için bir süreye dönüştürmeniz gerekir. 'Tarih'de' to_f' yoktur. i.e. 'Date.today.to_time' –
+1 basit, noktaya, güzel. Çok teşekkürler. –
Size başka bir tane vermenin bir yolunu bulmalıyım +1 - Bu hafta 2. kez bu cevaba başvurdum! –