我有一个听众需要在给定时间内随机活动10次,比如说20分钟。因此,如果时间段是从2013/08/20 10:00到2013/08/20 22:00,我需要在此范围之间生成10次随机DateTime,请记住,听众需要20分钟的时间
答案 0 :(得分:1)
您可以使用Ticks
上的DateTime
属性查找两者之间的差异,然后在该范围内生成随机数的刻度:
Random r = new Random();
int randTicks = r.Next(0, (int) (dt2.Ticks - dt1.Ticks));
现在,您可以添加随机的刻度线,以便在DateTime
和dt1
之间随机dt2
:
DateTime dtRand = dt1.AddTicks(randTicks);
答案 1 :(得分:1)
这应该让你开始:
TimeSpan timeSpan = endDate - startDate;
var randomTest = new Random();
for(var i = 0; i < 10; i++)
{
TimeSpan newSpan = new TimeSpan(0, randomTest.Next(0, (int)timeSpan.TotalMinutes), 0);
DateTime newDate = startDate + newSpan;
// Do something with newDate before you loop again
}
注意:您需要提供endDate
和startDate
值。