2017-02-23 24 views
1

私はこのコードを使ってRubyで日付を生成します。ランダムな日付を生成

DateTime.strptime("10/26/2015 07:09:52 AM", '%m/%d/%Y %I:%M:%S %p') 

たとえば、6か月間の範囲でランダムな日付を生成するにはどうすればよいですか?

+0

はあなたが日付または日付時刻が必要です:

は、すべての月が30日あるとしませんか? – ndn

+0

両方のオプションで私を見せてもらえますか? –

+0

私はちょうど私のために丸数字を必要としました: – sevenseacat

答えて

2

私ははるかに簡単な方法を使用したい - 私たちは、ラウンド数(86400 * 180)のために6ヶ月で15552000秒を言うと仮定した場合、あなたは行うことができます。

Time.now - rand(15552000) 

のランダムな量を減算するには現在の時刻から2秒後に、最後の6ヶ月以内にランダムなTimeオブジェクトを取得します。

あなたは、あなたが望むどんな形式でフォーマットするstrftimeを使用することができます。また、これは何のためのRailsには依存しません

(Time.now - rand(15552000)).strftime('%m/%d/%Y %I:%M:%S %p') 
=> "11/02/2016 12:04:05 AM" 

+0

完璧なソリューション! +1 –

0

今後6か月間のランダムな日時です。

now = DateTime.now 
six_months_later = now >> 6 

days_variance = (six_months_later - now).to_i 

random_moment = now + Rational(rand(days_variance * 86400), 86400) 

random_moment.strftime('%m/%d/%Y %I:%M:%S %p') 
関連する問題