C# 获取一个指定范围内的随机日期函数代码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 获取一个指定范围内的随机日期函数代码相关的知识,希望对你有一定的参考价值。

可以传入两个日期类型(DateTime)的参数,一个开始日期,一个结束日期,函数将会随机返回在这个范围内的日期,这个函数非常有 用,比如我们要随机生成一些文章,但又不希望文章的日期都一样,通过这个函数就可以随机生成一些日期写入数据库,这样就不会让人看出来这些文章是批量插入 的。

/// <summary>
/// 得到随机日期
/// </summary>
/// <param name="time1">起始日期</param>
/// <param name="time2">结束日期</param>
/// <returns>间隔日期之间的 随机日期</returns>
public static DateTime GetRandomTime(DateTime time1, DateTime time2)
{
Random random = new Random();
DateTime minTime = new DateTime();
DateTime maxTime = new DateTime();
System.TimeSpan ts = new System.TimeSpan(time1.Ticks - time2.Ticks);
// 获取两个时间相隔的秒数
double dTotalSecontds = ts.TotalSeconds;
int iTotalSecontds = 0;
if (dTotalSecontds > System.Int32.MaxValue)
{
iTotalSecontds = System.Int32.MaxValue;
}
else if (dTotalSecontds < System.Int32.MinValue)
{
iTotalSecontds = System.Int32.MinValue;
}
else
{
iTotalSecontds = (int)dTotalSecontds;
}
if (iTotalSecontds > 0)
{
minTime = time2;
maxTime = time1;
}
else if (iTotalSecontds < 0)
{
minTime = time1;
maxTime = time2;
}
else
{
return time1;
}
int maxValue = iTotalSecontds;
if (iTotalSecontds <= System.Int32.MinValue)
maxValue = System.Int32.MinValue + 1;
int i = random.Next(System.Math.Abs(maxValue));
return minTime.AddSeconds(i);
}

 

以上是关于C# 获取一个指定范围内的随机日期函数代码的主要内容,如果未能解决你的问题,请参考以下文章

题目一:编写一个可以 获取任意指定范围内的随机数

SQL Server生成指定范围内的随机数

shell生成指定范围内的随机数

shell生成指定范围内的随机数

C#如何生成一个范围内的随机数,偏向范围的低端? [复制]

给定'getrand100()'函数获取特定范围内的随机数