示例#1
0
        private DateTime GetExpectedDatetime(bool isIDS, DateTime input, DateTimeQuantifiers largest, DateTimeQuantifiers smallest)
        {
            var year   = 1200;
            var month  = 1;
            var day    = 1;
            var hour   = 0;
            var minute = 0;
            var second = 0;
            var ticks  = 0;

            if (isIDS && largest >= DateTimeQuantifiers.Hour && smallest <= DateTimeQuantifiers.Second)
            {
                // this selectivity for default year doesn't make any sense, but this is how IDS driver behaves
                year = 1;
            }

            if (largest == DateTimeQuantifiers.Year)
            {
                year = input.Year;
            }

            if (largest <= DateTimeQuantifiers.Month && smallest >= DateTimeQuantifiers.Month)
            {
                month = input.Month;
            }

            if (largest <= DateTimeQuantifiers.Day && smallest >= DateTimeQuantifiers.Day)
            {
                day = input.Day;
            }

            if (largest <= DateTimeQuantifiers.Hour && smallest >= DateTimeQuantifiers.Hour)
            {
                hour = input.Hour;
            }

            if (largest <= DateTimeQuantifiers.Minute && smallest >= DateTimeQuantifiers.Minute)
            {
                minute = input.Minute;
            }

            if (largest <= DateTimeQuantifiers.Second && smallest >= DateTimeQuantifiers.Second)
            {
                second = input.Second;
            }

            if (largest <= DateTimeQuantifiers.Fraction5 && smallest >= DateTimeQuantifiers.Fraction)
            {
                var digits = 3;
                if (smallest != DateTimeQuantifiers.Fraction)
                {
                    digits = smallest - DateTimeQuantifiers.Fraction;
                }

                ticks = ((int)(input.Ticks % 10000000) / (int)Math.Pow(10, 7 - digits)) * (int)Math.Pow(10, 7 - digits);
            }

            return(new DateTime(year, month, day, hour, minute, second).AddTicks(ticks));
        }
示例#2
0
 private static string GetQuantifierName(DateTimeQuantifiers quantifier)
 {
     return(quantifier switch
     {
         DateTimeQuantifiers.Fraction1 => "fraction(1)",
         DateTimeQuantifiers.Fraction2 => "fraction(2)",
         DateTimeQuantifiers.Fraction3 => "fraction(3)",
         DateTimeQuantifiers.Fraction4 => "fraction(4)",
         DateTimeQuantifiers.Fraction5 => "fraction(5)",
         _ => quantifier.ToString(),
     });
示例#3
0
        private static DateTime GetExpectedDatetime(DateTime input, DateTimeQuantifiers largest, DateTimeQuantifiers smallest)
        {
            var year   = 1200;
            var month  = 1;
            var day    = 1;
            var hour   = 0;
            var minute = 0;
            var second = 0;
            var ticks  = 0;

            if (largest == DateTimeQuantifiers.Year)
            {
                year = input.Year;
            }

            if (largest <= DateTimeQuantifiers.Month && smallest >= DateTimeQuantifiers.Month)
            {
                month = input.Month;
            }

            if (largest <= DateTimeQuantifiers.Day && smallest >= DateTimeQuantifiers.Day)
            {
                day = input.Day;
            }

            if (largest <= DateTimeQuantifiers.Hour && smallest >= DateTimeQuantifiers.Hour)
            {
                hour = input.Hour;
            }

            if (largest <= DateTimeQuantifiers.Minute && smallest >= DateTimeQuantifiers.Minute)
            {
                minute = input.Minute;
            }

            if (largest <= DateTimeQuantifiers.Second && smallest >= DateTimeQuantifiers.Second)
            {
                second = input.Second;
            }

            if (largest <= DateTimeQuantifiers.Fraction5 && smallest >= DateTimeQuantifiers.Fraction)
            {
                var digits = 3;
                if (smallest != DateTimeQuantifiers.Fraction)
                {
                    digits = smallest - DateTimeQuantifiers.Fraction;
                }

                ticks = ((int)(input.Ticks % 10000000) / (int)Math.Pow(10, 7 - digits)) * (int)Math.Pow(10, 7 - digits);
            }

            return(new DateTime(year, month, day, hour, minute, second).AddTicks(ticks));
        }
示例#4
0
        private static string GetQuantifierName(DateTimeQuantifiers quantifier)
        {
            switch (quantifier)
            {
            case DateTimeQuantifiers.Fraction1: return("fraction(1)");

            case DateTimeQuantifiers.Fraction2: return("fraction(2)");

            case DateTimeQuantifiers.Fraction3: return("fraction(3)");

            case DateTimeQuantifiers.Fraction4: return("fraction(4)");

            case DateTimeQuantifiers.Fraction5: return("fraction(5)");
            }

            return(quantifier.ToString());
        }