Coc*_*Dev 2 c# winforms random-time-generation
我正在创建一个测试文件,我需要在上午7点到11点之间随机填充它.重复输入即可,只要它们不完全相同即可
我也只对HH感兴趣:MM(没有秒)
我不知道从哪里开始.在发布之前我做了谷歌,我发现了一个有趣的搜索结果
www.random.org/clock-times/
Run Code Online (Sandbox Code Playgroud)
唯一的问题是"随机"生成的所有时间都是按顺序排列的.我可以将它排除在序列之外但我需要生成100到10,000个条目.
我希望创建一个WinForm C#应用程序来帮助我做到这一点.
Guf*_*ffa 10
DateTime为下限和随机生成器创建一个值:
DateTime start = DateTime.Today.AddHours(7);
Random rnd = new Random();
Run Code Online (Sandbox Code Playgroud)
现在,您可以通过向其添加分钟来创建随机时间:
DateTime value = start.AddMinutes(rnd.Next(241));
Run Code Online (Sandbox Code Playgroud)
要将其格式化为HH:MM,您可以使用自定义格式:
string time = value.ToString("HH:mm");
Run Code Online (Sandbox Code Playgroud)
计算开始和停止时间之间的分钟数,然后生成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...
}
Run Code Online (Sandbox Code Playgroud)
笔记: