Пример #1
0
 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);
 }
Пример #2
0
        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");
        }
Пример #3
0
        /// <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);
            }
        }