C#獲取一個指定范圍內的隨機日期函數代碼

fdwm 9年前發布 | 960 次閱讀 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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!