码迷,mamicode.com
首页 > Windows程序 > 详细

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

时间:2016-11-25 20:13:15      阅读:275      评论:0      收藏:0      [点我收藏+]

标签:sys   rand   ret   nbsp   value   datetime   turn   ati   数据库   

可以传入两个日期类型(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# 获取一个指定范围内的随机日期函数代码

标签:sys   rand   ret   nbsp   value   datetime   turn   ati   数据库   

原文地址:http://www.cnblogs.com/testsec/p/6102656.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!