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