在给定的DateTime范围-C#之间生成随机DateTime
本文关键字:DateTime 之间 随机 -C# 范围 | 更新日期: 2023-09-27 18:28:11
我有一个监听器,它需要在给定的时间段内随机活动10次,比如20分钟。因此,如果时间段是从2013/08/20 10:00到2013/08/2020 22:00,我需要在这个范围之间生成10次随机DateTime,记住听众需要20分钟的时间。
您可以使用DateTime
上的Ticks
属性来查找两者之间的差异,然后生成该范围内的随机数:
Random r = new Random();
int randTicks = r.Next(0, (int) (dt2.Ticks - dt1.Ticks));
现在,您可以添加随机#的tick,在dt1
和dt2
:之间生成随机DateTime
DateTime dtRand = dt1.AddTicks(randTicks);
这应该会让你开始:
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
的值。