-5

我有一个听众需要在给定的时间段内随机活动 10 次,持续 20 分钟。因此,如果时间段是从 2013/08/20 10:00 到 2013/08/20 22:00,我需要在此范围之间生成 10 次随机 DateTime,记住听众需要 20 分钟的时间.

4

2 回答 2

1

您可以使用Tickson 属性DateTime找出两者之间的差异,然后在该范围内生成随机数量的刻度:

Random r = new Random();
int randTicks = r.Next(0, (int) (dt2.Ticks - dt1.Ticks));

现在您可以添加随机的 # 滴答声以在 和 之间进行随机DateTime化:dt1dt2

DateTime dtRand = dt1.AddTicks(randTicks);
于 2013-08-19T18:51:14.547 回答
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
}

注意:您需要提供endDatestartDate值。

于 2013-08-19T18:52:28.333 回答