我正在创建一个测试文件,我需要在上午7点到11点之间随机填充它重复输入是可以的,只要它们不完全相同
我也只对HH:MM (没有秒)感兴趣
我不知道该从何说起。我在发帖前用谷歌搜索了一下,发现了一个有趣的搜索结果
www.random.org/clock-times/唯一的问题是,所有“随机”生成的时间都是按顺序生成的。我可以把它弄乱一次,但我需要生成100到10,000个条目。
我希望创建一个WinForm C#应用程序来帮助我做到这一点。
发布于 2012-11-28 02:20:10
计算启动和停止时间之间的分钟数,然后生成一个介于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...
}备注:
发布于 2012-11-28 02:18:34
为下限创建一个DateTime值,并创建一个随机生成器:
DateTime start = DateTime.Today.AddHours(7);
Random rnd = new Random();现在,您可以通过添加分钟来创建随机时间:
DateTime value = start.AddMinutes(rnd.Next(241));要将其格式化为HH:MM,您可以使用自定义格式:
string time = value.ToString("HH:mm");发布于 2012-11-28 02:19:02
这是一个通用的方法,可以为您提供一个介于给定开始日期和结束日期之间的随机日期。
public static DateTime RandomDate(Random generator, DateTime rangeStart, DateTime rangeEnd)
{
TimeSpan span = rangeEnd - rangeStart;
int randomMinutes = generator.Next(0, (int)span.TotalMinutes);
return rangeStart + TimeSpan.FromMinutes(randomMinutes);
}如果你经常使用这样的东西,你可以让它成为Random上的扩展方法。
https://stackoverflow.com/questions/13590465
复制相似问题