CreateDateTime() static private method

static private CreateDateTime ( double number ) : System.DateTime
number double
return System.DateTime
Exemplo n.º 1
0
        /// <summary>
        /// Converts a JsInstance object to its CLR equivalence
        /// </summary>
        /// <param name="parameter">The object to convert</param>
        /// <returns>A CLR object</returns>
        public static object ConvertParameter(JsInstance parameter)
        {
            if (parameter == null)
            {
                return(null);
            }

            if (parameter.Class != JsFunction.TYPEOF && parameter.Class != JsArray.TYPEOF)
            {
                return(parameter.Value);
            }

            if (parameter == JsNull.Instance)
            {
                return(null);
            }

            if (parameter.IsClr)
            {
                return(parameter.Value);
            }

            var constructor = ((JsDictionaryObject)parameter)["constructor"] as JsFunction;

            if (constructor == null)
            {
                return(parameter);
            }
            switch (constructor.Name)
            {
            case "Date":
                return(JsDateConstructor.CreateDateTime(parameter.ToNumber()));

            case "String":
            case "RegExp":
            case "Number":
                return(parameter.Value);

            case "Array":
            case "Object":
                if (parameter.Class == JsFunction.TYPEOF)
                {
                    return(parameter);
                }
                var array = new object[((JsObject)parameter).Length];
                foreach (KeyValuePair <string, JsInstance> key in (JsObject)parameter)
                {
                    int index;
                    if (int.TryParse(key.Key, out index))
                    {
                        array[index] = ConvertParameters(key.Value)[0];
                    }
                }
                return(new System.Collections.ArrayList(array));

            default:
                return(parameter);
            }
        }
Exemplo n.º 2
0
 public JsInstance ToUTCStringImpl(JsDictionaryObject target, JsInstance[] parameters)
 {
     if (double.IsNaN(target.ToNumber()))
     {
         return((JsInstance)this.Global.StringClass.New(double.NaN.ToString()));
     }
     return((JsInstance)this.Global.StringClass.New(JsDateConstructor.CreateDateTime(target.ToNumber()).ToString(JsDate.FORMATUTC, (IFormatProvider)CultureInfo.InvariantCulture)));
 }
Exemplo n.º 3
0
        public JsInstance SetUTCDateImpl(JsDictionaryObject target, JsInstance[] parameters)
        {
            if (parameters.Length == 0)
            {
                throw new ArgumentException("There was no date specified");
            }
            DateTime dateTime = JsDateConstructor.CreateDateTime(target.ToNumber());

            dateTime     = dateTime.AddDays((double)-dateTime.Day);
            dateTime     = dateTime.AddDays(parameters[0].ToNumber());
            target.Value = (object)dateTime;
            return((JsInstance)target);
        }
Exemplo n.º 4
0
        public JsInstance GetSecondsImpl(JsDictionaryObject target, JsInstance[] parameters)
        {
            if (double.IsNaN(target.ToNumber()))
            {
                return(this.Global.NaN);
            }
            JsNumberConstructor numberClass = this.Global.NumberClass;
            DateTime            dateTime    = JsDateConstructor.CreateDateTime(target.ToNumber());

            dateTime = dateTime.ToLocalTime();
            double second = (double)dateTime.Second;

            return((JsInstance)numberClass.New(second));
        }
Exemplo n.º 5
0
        public JsInstance GetUTCHoursImpl(JsDictionaryObject target, JsInstance[] parameters)
        {
            if (double.IsNaN(target.ToNumber()))
            {
                return(this.Global.NaN);
            }
            JsNumberConstructor numberClass = this.Global.NumberClass;
            DateTime            dateTime    = JsDateConstructor.CreateDateTime(target.ToNumber());

            dateTime = dateTime.ToUniversalTime();
            double hour = (double)dateTime.Hour;

            return((JsInstance)numberClass.New(hour));
        }
Exemplo n.º 6
0
        public JsInstance ToTimeStringImpl(JsDictionaryObject target, JsInstance[] parameters)
        {
            if (double.IsNaN(target.ToNumber()))
            {
                return((JsInstance)this.Global.StringClass.New(double.NaN.ToString()));
            }
            JsStringConstructor stringClass = this.Global.StringClass;
            DateTime            dateTime    = JsDateConstructor.CreateDateTime(target.ToNumber());

            dateTime = dateTime.ToLocalTime();
            string str = dateTime.ToString(JsDate.TIMEFORMAT, (IFormatProvider)CultureInfo.InvariantCulture);

            return((JsInstance)stringClass.New(str));
        }
Exemplo n.º 7
0
        public JsInstance SetUTCMillisecondsImpl(
            JsDictionaryObject target,
            JsInstance[] parameters)
        {
            if (parameters.Length == 0)
            {
                throw new ArgumentException("There was no millisecond specified");
            }
            DateTime dateTime = JsDateConstructor.CreateDateTime(target.ToNumber());

            dateTime     = dateTime.AddMilliseconds((double)-dateTime.Millisecond);
            dateTime     = dateTime.AddMilliseconds(parameters[0].ToNumber());
            target.Value = (object)this.New(dateTime).ToNumber();
            return((JsInstance)target);
        }
Exemplo n.º 8
0
        public JsInstance ToLocaleDateStringImpl(
            JsDictionaryObject target,
            JsInstance[] parameters)
        {
            if (double.IsNaN(target.ToNumber()))
            {
                return((JsInstance)this.Global.StringClass.New(double.NaN.ToString()));
            }
            JsStringConstructor stringClass = this.Global.StringClass;
            DateTime            dateTime    = JsDateConstructor.CreateDateTime(target.ToNumber());

            dateTime = dateTime.ToLocalTime();
            string str = dateTime.ToString(JsDate.DATEFORMAT);

            return((JsInstance)stringClass.New(str));
        }
Exemplo n.º 9
0
        public JsInstance SetFullYearImpl(JsDictionaryObject target, JsInstance[] parameters)
        {
            if (parameters.Length == 0)
            {
                throw new ArgumentException("There was no year specified");
            }
            DateTime dateTime = JsDateConstructor.CreateDateTime(target.ToNumber()).ToLocalTime();
            int      num      = dateTime.Year - (int)parameters[0].ToNumber();

            dateTime     = dateTime.AddYears(-num);
            target.Value = (object)dateTime;
            if (parameters.Length > 1)
            {
                JsInstance[] parameters1 = new JsInstance[parameters.Length - 1];
                parameters.CopyTo((Array)parameters1, 1);
                target = (JsDictionaryObject)this.SetMonthImpl(target, parameters1);
            }
            return((JsInstance)target);
        }
Exemplo n.º 10
0
        public JsInstance SetUTCMonthImpl(JsDictionaryObject target, JsInstance[] parameters)
        {
            if (parameters.Length == 0)
            {
                throw new ArgumentException("There was no month specified");
            }
            DateTime dateTime = JsDateConstructor.CreateDateTime(target.ToNumber());

            dateTime     = dateTime.AddMonths(-dateTime.Month);
            dateTime     = dateTime.AddMonths((int)parameters[0].ToNumber());
            target.Value = (object)dateTime;
            if (parameters.Length > 1)
            {
                JsInstance[] parameters1 = new JsInstance[parameters.Length - 1];
                parameters.CopyTo((Array)parameters1, 1);
                target = (JsDictionaryObject)this.SetDateImpl(target, parameters1);
            }
            return((JsInstance)target);
        }
Exemplo n.º 11
0
        public JsInstance SetHoursImpl(JsDictionaryObject target, JsInstance[] parameters)
        {
            if (parameters.Length == 0)
            {
                throw new ArgumentException("There was no hour specified");
            }
            DateTime dateTime = JsDateConstructor.CreateDateTime(target.ToNumber()).ToLocalTime();

            dateTime     = dateTime.AddHours((double)-dateTime.Hour);
            dateTime     = dateTime.AddHours(parameters[0].ToNumber());
            target.Value = (object)dateTime;
            if (parameters.Length > 1)
            {
                JsInstance[] parameters1 = new JsInstance[parameters.Length - 1];
                parameters.CopyTo((Array)parameters1, 1);
                target = (JsDictionaryObject)this.SetMinutesImpl(target, parameters1);
            }
            return((JsInstance)target);
        }
Exemplo n.º 12
0
 public override object ToObject()
 {
     return(JsDateConstructor.CreateDateTime(value).ToLocalTime());
 }
Exemplo n.º 13
0
 public override string ToString()
 {
     return(JsDateConstructor.CreateDateTime(value).ToLocalTime().ToString(FORMAT, CultureInfo.InvariantCulture));
 }
Exemplo n.º 14
0
 public JsDate(double value, JsObject prototype)
     : this(JsDateConstructor.CreateDateTime(value), prototype)
 {
 }