Exemplo n.º 1
0
        /// <summary>
        /// Create Random Number
        /// </summary>
        /// <param name="minimumValue">Minimum Value</param>
        /// <param name="maximumValue">Maximum Number</param>
        /// <returns>Random Integer</returns>
        public static long CreateRandomNumber(long minimumValue = MinimumNumber, long maximumValue = MaximumNumber)
        {
            var randomNextValue = ThreadLocalRandom.NextDouble();
            var randomRange     = maximumValue - minimumValue + 1;

            return(minimumValue + (long)(randomRange * randomNextValue));
        }
Exemplo n.º 2
0
        /// <summary>
        /// Create Random Date
        /// </summary>
        /// <param name="dateKind">Kind of Date</param>
        /// <param name="minDate">Minimum Date (Optional)</param>
        /// <param name="maxDate">Maximum Date (Optional)</param>
        /// <param name="dateOnly">Date Only and not Time</param>
        /// <param name="minTime">Minimum Time (Optional)</param>
        /// <param name="maxTime">Maximum Time (Optional)</param>
        /// <returns>Random created date</returns>
        public static DateTime CreateRandomDate(DateTimeKind dateKind, DateTime?minDate = null, DateTime?maxDate = null, bool dateOnly = false,
                                                DateTime?minTime = null, DateTime?maxTime = null)
        {
            if (dateOnly)
            {
                minDate = minDate?.StartOfDay().AddDays(1);
                maxDate = maxDate?.StartOfDay();
            }

            var minTicks = (minDate ?? new DateTime(1990, 1, 1)).Ticks;
            var maxTicks = (maxDate ?? new DateTime(2020, 12, 31)).Ticks;
            var range    = maxTicks - minTicks;

            var actualTicks = minTicks + (range + ThreadLocalRandom.NextDouble());
            var rawDateTime = new DateTime((long)actualTicks);
            var sanitised   = new DateTime(rawDateTime.Year, rawDateTime.Month, rawDateTime.Day,
                                           rawDateTime.Hour, rawDateTime.Minute, rawDateTime.Second, rawDateTime.Millisecond,
                                           dateKind);

            return(RangeCheckTimeOnRandomDate(minTime, maxTime, dateOnly ? sanitised.StartOfDay() : sanitised));
        }