コード例 #1
0
        /// <summary>
        /// Converts an <see cref="IComparable"/> to DateTime
        /// </summary>
        /// <param name="c">The IComparable.</param>
        /// <returns></returns>
        public static DateTime ToDateTime(this IComparable c)
        {
            if (c is DateTime)
            {
                return((DateTime)c);
            }

            if (c is TimeSpan)
            {
                return(new DateTime(((TimeSpan)c).Ticks));
            }

            if (c.IsDefined())
            {
                long localTicks = NumberUtil.Constrain((long)Convert.ChangeType(c, typeof(long), CultureInfo.InvariantCulture), DateTime.MinValue.Ticks, DateTime.MaxValue.Ticks);
                return(new DateTime(localTicks));
            }

            return(new DateTime());
        }
コード例 #2
0
        /// <summary>
        /// Converts a <see cref="System.Double"/> to <see cref="System.DateTime"/>
        /// </summary>
        /// <param name="ticks">The ticks as Double.</param>
        /// <returns>The equivalent DateTime</returns>
        public static DateTime ToDateTime(this double ticks)
        {
            long localTicks = NumberUtil.Constrain((long)ticks, DateTime.MinValue.Ticks, DateTime.MaxValue.Ticks);

            return(new DateTime(localTicks));
        }