public static DateTime?TryDateTime(object val) { if (val == null) { return(new DateTime?(DateTimeExtension.FromOADate(0.0))); } if (IsNumber(val)) { if (val is DateTime) { return(new DateTime?((DateTime)val)); } if (val is TimeSpan) { TimeSpan span = (TimeSpan)val; return(new DateTime?(DateTimeExtension.FromOADate(span.TotalDays))); } double?nullable = TryDouble(val); if (nullable.HasValue) { return(new DateTime?(DateTimeExtension.FromOADate(nullable.Value))); } } else { DateTime time; if ((val is string) && DateTime.TryParse((string)(val as string), (IFormatProvider)CultureInfo.InvariantCulture, (DateTimeStyles)DateTimeStyles.None, out time)) { return(new DateTime?(time)); } } return(null); }
void UpdateDateTimeItems() { double num; double num2; List <DateTime> list = new List <DateTime>(); this.Axis.AdjustMinMax(out num, out num2); DateTime time = DateTimeExtension.FromOADate(num); DateTime time2 = DateTimeExtension.FromOADate(num2); while (time < time2) { list.Add(time); switch (this.Axis.MajorTimeUnit) { case AxisTimeUnit.Days: time = time.AddDays((double)((int)this.Axis.MajorUnit)); break; case AxisTimeUnit.Months: time = time.AddMonths((int)this.Axis.MajorUnit); break; case AxisTimeUnit.Years: time = time.AddYears((int)this.Axis.MajorUnit); break; } } list.Add(time); base.items.Clear(); foreach (DateTime time3 in list) { base.items.Add(time3); } this.Axis.NotifyAxisChanged("Items"); }
/// <summary> /// Converts the specified value to a date time value. /// </summary> /// <param name="value">The value to convert.</param> /// <param name="useCulture">if set to <c>true</c> [use culture].</param> /// <returns> /// A date time value equivalent to the specified value. /// </returns> /// <exception cref="T:System.InvalidCastException">The value cannot be converted.</exception> public static DateTime?TryDateTime(object value, bool useCulture = true) { CultureInfo info = useCulture ? CultureInfo.CurrentCulture : CultureInfo.InvariantCulture; try { if (value == null) { return(new DateTime?(DateTimeExtension.FromOADate(0.0))); } if (value is double) { return(new DateTime?(DateTimeExtension.FromOADate((double)((double)value)))); } if (value is float) { return(new DateTime?(DateTimeExtension.FromOADate((double)((float)value)))); } if (value is decimal) { return(new DateTime?(DateTimeExtension.FromOADate((double)((double)((decimal)value))))); } if (value is long) { return(new DateTime?(DateTimeExtension.FromOADate((double)((long)value)))); } if (value is int) { return(new DateTime?(DateTimeExtension.FromOADate((double)((int)value)))); } if (value is short) { return(new DateTime?(DateTimeExtension.FromOADate((double)((short)value)))); } if (value is sbyte) { return(new DateTime?(DateTimeExtension.FromOADate((double)((sbyte)value)))); } if (value is ulong) { return(new DateTime?(DateTimeExtension.FromOADate((double)((ulong)value)))); } if (value is uint) { return(new DateTime?(DateTimeExtension.FromOADate((double)((uint)value)))); } if (value is ushort) { return(new DateTime?(DateTimeExtension.FromOADate((double)((ushort)value)))); } if (value is byte) { return(new DateTime?(DateTimeExtension.FromOADate((double)((byte)value)))); } if (value is bool) { return(new DateTime?(DateTimeExtension.FromOADate(((bool)value) ? 1.0 : 0.0))); } if (value is string) { double num; DateTime time; if (double.TryParse((string)((string)value), (NumberStyles)NumberStyles.Any, (IFormatProvider)info, out num)) { return(new DateTime?(DateTimeExtension.FromOADate(num))); } if (DateTime.TryParse((string)((string)value), (IFormatProvider)info, (DateTimeStyles)DateTimeStyles.None, out time)) { return(new DateTime?(time)); } return(null); } if (value is DateTime) { return(new DateTime?((DateTime)value)); } if (value is TimeSpan) { TimeSpan span = (TimeSpan)value; return(new DateTime?(DateTimeExtension.FromOADate(span.TotalDays))); } return(new DateTime?(Convert.ToDateTime(value, (IFormatProvider)info))); } catch { return(null); } }