Microsoft.JScript.DatePrototype.MakeDay C# (CSharp) Méthode

MakeDay() static private méthode

static private MakeDay ( double year, double month, double date ) : double
year double
month double
date double
Résultat double
      internal static double MakeDay(double year, double month, double date){
        if (Double.IsInfinity(year) || Double.IsInfinity(month) || Double.IsInfinity(date) || year != year || month != month || date != date)
          return Double.NaN;
        year = (double)(int)Runtime.DoubleToInt64(year);
        month = (double)(int)Runtime.DoubleToInt64(month);
        date = (double)(int)Runtime.DoubleToInt64(date);
        year += Math.Floor(month/12);
        month = month % 12;
        if (month < 0) month += 12;
        double daysToMonthStart = 0;
        if (month > 0)
          if (InLeapYear((int)Runtime.DoubleToInt64(year)))
            daysToMonthStart = leapDaysToMonthEnd[(int)(month-1)];
          else
            daysToMonthStart = daysToMonthEnd[(int)(month-1)];
        return DayFromYear(year)-1 + daysToMonthStart + date;
      }

Usage Example

Exemple #1
0
        public new DateObject CreateInstance(params Object[] args)
        {
            if (args.Length == 0)
            {
                return(new DateObject(this.originalPrototype, DateTime.Now.ToUniversalTime().Ticks / DatePrototype.ticksPerMillisecond - DatePrototype.msTo1970));
            }
            if (args.Length == 1)
            {
                Object       arg0  = args[0];
                IConvertible ic    = Convert.GetIConvertible(arg0);
                TypeCode     tcode = Convert.GetTypeCode(arg0, ic);
                if (tcode == TypeCode.DateTime)
                {
                    return(new DateObject(this.originalPrototype, ic.ToDateTime(null).ToUniversalTime().Ticks / DatePrototype.ticksPerMillisecond - DatePrototype.msTo1970));
                }
                Object yv = Convert.ToPrimitive(arg0, PreferredType.Either, ref ic);
                if (Convert.GetTypeCode(yv, ic) == TypeCode.String)
                {
                    return(new DateObject(this.originalPrototype, parse(ic.ToString(null))));
                }
                double d = Convert.ToNumber(yv, ic);
                if (DatePrototype.minDate <= d && d <= DatePrototype.maxDate)
                {
                    return(new DateObject(this.originalPrototype, d));
                }
                return(new DateObject(this.originalPrototype, Double.NaN));
            }
            double dyear    = Convert.ToNumber(args[0]);
            double dmonth   = Convert.ToNumber(args[1]);
            double ddate    = (args.Length > 2) ? Convert.ToNumber(args[2]) : 1;
            double dhours   = (args.Length > 3) ? Convert.ToNumber(args[3]) : 0;
            double dminutes = (args.Length > 4) ? Convert.ToNumber(args[4]) : 0;
            double dseconds = (args.Length > 5) ? Convert.ToNumber(args[5]) : 0;
            double dms      = (args.Length > 6) ? Convert.ToNumber(args[6]) : 0;
            int    y        = (int)dyear;

            if (!Double.IsNaN(dyear) && 0 <= y && y <= 99)
            {
                dyear = y + 1900;
            }
            double day  = DatePrototype.MakeDay(dyear, dmonth, ddate);
            double time = DatePrototype.MakeTime(dhours, dminutes, dseconds, dms);

            return(new DateObject(this.originalPrototype, DatePrototype.TimeClip(DatePrototype.UTC(DatePrototype.MakeDate(day, time)))));
        }
All Usage Examples Of Microsoft.JScript.DatePrototype::MakeDay