c# - 早上 7 点到 11 点之间的随机时间生成器

标签 c# winforms random-time-generation

<分区>

我正在创建一个测试文件,我需要用上午 7 点到上午 11 点之间的随机时间填充它。重复条目是可以的,只要它们不完全相同

我也只对 HH:MM 感兴趣(没有秒数)

我不知道从哪里开始。我在发帖前进行了谷歌搜索,发现了一个有趣的搜索结果

www.random.org/clock-times/

唯一的问题是所有“随机”生成的时间都是按顺序排列的。我可以将它打乱一次,但我需要生成 100 到 10,000 个条目。

我希望创建一个 WinForm C# 应用程序来帮助我做到这一点。

最佳答案

计算开始时间和停止时间之间的分钟数,然后生成一个介于 0 和最大分钟数之间的随机数:

Random random = new Random();
TimeSpan start = TimeSpan.FromHours(7);
TimeSpan end = TimeSpan.FromHours(11);
int maxMinutes = (int)((end - start).TotalMinutes);

for (int i = 0; i < 100; ++i) {
   int minutes = random.Next(maxMinutes);
   TimeSpan t = start.Add(TimeSpan.FromMinutes(minutes));
   // Do something with t...
}

注意事项:

  • 您应该只创建一个随机对象,否则您会连续得到很多重复项。
  • 包含开始时间但不包含结束时间。如果您还想包括结束时间,请将 maxMinutes 加 1。

关于c# - 早上 7 点到 11 点之间的随机时间生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13590465/

相关文章:

c# - InitializeComponent() 应该按代码顺序出现在哪里?

c# - 在 UserClosing 和 this.close 上触发的关闭事件

python - 在两次之间随机发送请求

c# - 如何对 Service Fabric 应用程序进行版本控制和分离?

C# 压力测试 - 模拟对给定共享资源的多次访问

c# - 如何添加标有 [DatabaseGenerate(DatabaseGenerateOption.None)] 的新实体

c# - 匿名 StreamReader 会自动关闭吗?

c# - 表单类,在简单的代码测试中不断得到 "System.StackOverflowException"

sql - 固定间隔内独特的随机时间生成