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

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

这个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);
        }