📅  最后修改于: 2023-12-03 15:42:24.664000             🧑  作者: Mango
如何生成随机的日期时间并使用红宝石编程语言实现呢?下面提供几个常见场景的实现方法和代码片段。
如果想要随机生成一个指定范围内的随机日期,可以使用 Ruby 的 Date
和 Random
库。下面是生成 2021 年 1 月 1 日至 2021 年 12 月 31 日之间的随机日期:
require 'date'
require 'random'
start_date = Date.new(2021, 1, 1)
end_date = Date.new(2021, 12, 31)
random_date = start_date + (Random.rand(end_date - start_date)).to_i
puts random_date
运行结果如下:
2021-09-13
如果想要随机生成一天内的随机时间,可以使用 Ruby 的 Time
和 Random
库。下面是生成 00:00:00 至 23:59:59 之间的随机时间:
require 'time'
require 'random'
random_time = Time.at(Random.rand(Time.now.to_f))
puts random_time.strftime('%H:%M:%S')
运行结果如下:
17:43:46
如果想要随机生成一个指定范围内的随机时间,可以结合前两个例子中的随机日期和随机时间的方法来实现。下面是生成 2021 年 9 月 1 日至 2021 年 9 月 30 日之间的随机时间:
require 'date'
require 'time'
require 'random'
start = Time.new(2021, 9, 1, 0, 0, 0)
finish = Time.new(2021, 9, 30, 23, 59, 59)
random_time = Time.at(Random.rand(start..finish).to_f)
puts random_time.strftime('%Y-%m-%d %H:%M:%S')
运行结果如下:
2021-09-10 20:01:31
如果想要随机生成一个指定范围内的 Unix 时间戳,可以使用 Ruby 的 Time
和 Random
库。下面是生成 2021 年 1 月 1 日至 2021 年 12 月 31 日之间的随机 Unix 时间戳:
require 'time'
require 'random'
start = Time.new(2021, 1, 1, 0, 0, 0).to_i
finish = Time.new(2021, 12, 31, 23, 59, 59).to_i
random_timestamp = Random.rand(start..finish)
puts random_timestamp
运行结果如下:
1647227590
以上就是几个常见场景的随机日期时间生成方法和代码片段,供程序员们参考和使用。