public static double?TryDouble(object val, bool useCulture = true) { double num; CultureInfo info = useCulture ? CultureInfo.CurrentCulture : CultureInfo.InvariantCulture; if (val == null) { return(0.0); } if (IsNumber(val)) { if (val is DateTime) { return(new double?(DateTimeExtension.ToOADate((DateTime)val))); } if (val is TimeSpan) { TimeSpan span = (TimeSpan)val; return(new double?(span.TotalDays)); } try { return(new double?(Convert.ToDouble(val, (IFormatProvider)info))); } catch (InvalidCastException) { return(null); } } if ((val is string) && double.TryParse((string)(val as string), (NumberStyles)NumberStyles.Any, (IFormatProvider)info, out num)) { return(new double?(num)); } return(null); }
public static bool?TryBool(object val, bool useCulture = true) { CultureInfo info = useCulture ? CultureInfo.CurrentCulture : CultureInfo.InvariantCulture; if (val == null) { return(false); } if (val is bool) { return(new bool?((bool)((bool)val))); } if (!IsNumber(val) && !(val is string)) { return(null); } if (val is DateTime) { return(new bool?(DateTimeExtension.ToOADate((DateTime)val) != 0.0)); } if (val is TimeSpan) { TimeSpan span = (TimeSpan)val; return(new bool?(span.TotalDays != 0.0)); } if (val is string) { bool flag; if (bool.TryParse((string)(val as string), out flag)) { return(new bool?(flag)); } return(null); } try { return(new bool?(Convert.ToBoolean(val, (IFormatProvider)info))); } catch (FormatException) { return(null); } catch (InvalidCastException) { return(null); } }
public static int?TryInt(object val, bool useCulture = true) { CultureInfo info = useCulture ? CultureInfo.CurrentCulture : CultureInfo.InvariantCulture; if (val == null) { return(0); } if (IsNumber(val)) { if (val is DateTime) { return(new int?((int)DateTimeExtension.ToOADate((DateTime)val))); } if (val is TimeSpan) { TimeSpan span = (TimeSpan)val; return(new int?((int)span.TotalDays)); } try { return(new int?(Convert.ToInt32(val, (IFormatProvider)info))); } catch (InvalidCastException) { return(null); } } if (val is string) { int num; if (int.TryParse((string)(val as string), (NumberStyles)NumberStyles.Any, (IFormatProvider)info, out num)) { return(new int?(num)); } } else if (IntrospectionExtensions.GetTypeInfo(val.GetType()).IsEnum) { return(new int?((int)((int)val))); } return(null); }
double CalcItemWidth(Size availableSize) { double num = DateTimeExtension.ToOADate(_viewInfo.GetMinDatetime()); double num2 = DateTimeExtension.ToOADate(_viewInfo.GetMaxDatetime()); List <double> list = new List <double>(); for (int i = 0; i < CachedIndexMaping.Count; i++) { int num4 = CachedIndexMaping[i]; DateTime?nullable = CachedDatetimes[num4]; if ((nullable.HasValue && CachedDatetimesVisible[num4]) && (nullable.Value != DateTime.MinValue)) { double num5 = DateTimeExtension.ToOADate(nullable.Value); list.Add(num5); } } list.Sort(); if ((list.Count <= 1) || (num == num2)) { return(((availableSize.Width - LeftSpace) - RightSpace) / 2.0); } double maxValue = double.MaxValue; double num7 = 0.0; for (int j = 1; j < list.Count; j++) { double num10 = list[j] - list[j - 1]; if ((num10 < maxValue) && (num10 > 0.0)) { maxValue = num10; } num7 += num10; } double num11 = ((((availableSize.Width - LeftSpace) - RightSpace) * maxValue) / num7) / 2.0; if (num11 < 2.0) { num11 = 2.0; } return(num11); }
public static double ToDouble(object value, bool useCulture = true) { double num; CultureInfo info = useCulture ? CultureInfo.CurrentCulture : CultureInfo.InvariantCulture; try { if (value == null) { return(0.0); } if (value is double) { return((double)((double)value)); } if (value is float) { return((double)((float)value)); } if (value is decimal) { return((double)((double)((decimal)value))); } if (value is long) { return((double)((long)value)); } if (value is int) { return((double)((int)value)); } if (value is short) { return((double)((short)value)); } if (value is sbyte) { return((double)((sbyte)value)); } if (value is ulong) { return((double)((ulong)value)); } if (value is uint) { return((double)((uint)value)); } if (value is ushort) { return((double)((ushort)value)); } if (value is byte) { return((double)((byte)value)); } if (value is bool) { return(((bool)value) ? 1.0 : 0.0); } if (value is string) { return(double.Parse((string)((string)value), (NumberStyles)NumberStyles.Any, (IFormatProvider)info)); } if (value is DateTime) { return(DateTimeExtension.ToOADate((DateTime)value)); } if (value is TimeSpan) { TimeSpan span = (TimeSpan)value; return(span.TotalDays); } num = Convert.ToDouble(value, (IFormatProvider)info); } catch { throw new InvalidCastException(); } return(num); }
public static TimeSpan ToTimeSpan(object value, bool useCulture = true) { TimeSpan span; CultureInfo info = useCulture ? CultureInfo.CurrentCulture : CultureInfo.InvariantCulture; try { if (value == null) { return(TimeSpan.FromDays(0.0)); } if (value is double) { return(TimeSpan.FromDays((double)((double)value))); } if (value is float) { return(TimeSpan.FromDays((double)((float)value))); } if (value is decimal) { return(TimeSpan.FromDays((double)((double)((decimal)value)))); } if (value is long) { return(TimeSpan.FromDays((double)((long)value))); } if (value is int) { return(TimeSpan.FromDays((double)((int)value))); } if (value is short) { return(TimeSpan.FromDays((double)((short)value))); } if (value is sbyte) { return(TimeSpan.FromDays((double)((sbyte)value))); } if (value is ulong) { return(TimeSpan.FromDays((double)((ulong)value))); } if (value is uint) { return(TimeSpan.FromDays((double)((uint)value))); } if (value is ushort) { return(TimeSpan.FromDays((double)((ushort)value))); } if (value is byte) { return(TimeSpan.FromDays((double)((byte)value))); } if (value is bool) { return(TimeSpan.FromDays(((bool)value) ? 1.0 : 0.0)); } if (value is string) { return(TimeSpan.Parse((string)((string)value), (IFormatProvider)info)); } if (value is DateTime) { return(TimeSpan.FromDays(DateTimeExtension.ToOADate((DateTime)value))); } if (!(value is TimeSpan)) { throw new InvalidCastException(); } span = (TimeSpan)value; } catch { throw new InvalidCastException(); } return(span); }