C#獲取一個指定范圍內的隨機日期函數代碼
這個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);
}</pre>
本文由用戶 fdwm 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!