/// <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()); }