Example #1
0
        public static int ToDateTimeFieldEnum(this CalendarFieldEnum @enum)
        {
            switch (@enum)
            {
            case CalendarFieldEnum.MILLISEC:
                return(DateTimeFieldEnum.MILLISEC);

            case CalendarFieldEnum.SECOND:
                return(DateTimeFieldEnum.SECOND);

            case CalendarFieldEnum.MINUTE:
                return(DateTimeFieldEnum.MINUTE);

            case CalendarFieldEnum.HOUR:
                return(DateTimeFieldEnum.HOUR);

            case CalendarFieldEnum.DAY:
                return(DateTimeFieldEnum.DAY);

            case CalendarFieldEnum.MONTH:
                return(DateTimeFieldEnum.MONTH);

            case CalendarFieldEnum.WEEK:
                return(DateTimeFieldEnum.WEEK);

            case CalendarFieldEnum.YEAR:
                return(DateTimeFieldEnum.YEAR);
            }

            throw new ArgumentException("invalid value", "enum");
        }
Example #2
0
        public static string[] GetNames(this CalendarFieldEnum @enum)
        {
            switch (@enum)
            {
            case CalendarFieldEnum.MILLISEC:
                return(new[] { "msec", "millisecond", "milliseconds" });

            case CalendarFieldEnum.SECOND:
                return(new[] { "sec", "second", "seconds" });

            case CalendarFieldEnum.MINUTE:
                return(new[] { "min", "minute", "minutes" });

            case CalendarFieldEnum.HOUR:
                return(new[] { "hour", "hours" });

            case CalendarFieldEnum.DAY:
                return(new[] { "day", "days" });

            case CalendarFieldEnum.MONTH:
                return(new[] { "month", "months" });

            case CalendarFieldEnum.WEEK:
                return(new[] { "week", "weeks" });

            case CalendarFieldEnum.YEAR:
                return(new[] { "year", "years" });
            }

            throw new ArgumentException("invalid value", "enum");
        }
Example #3
0
        public static ChronoField GetChronoField(this CalendarFieldEnum @enum)
        {
            switch (@enum)
            {
            case CalendarFieldEnum.MILLISEC:
                return(ChronoField.MILLI_OF_SECOND);

            case CalendarFieldEnum.SECOND:
                return(ChronoField.SECOND_OF_MINUTE);

            case CalendarFieldEnum.MINUTE:
                return(ChronoField.MINUTE_OF_HOUR);

            case CalendarFieldEnum.HOUR:
                return(ChronoField.HOUR_OF_DAY);

            case CalendarFieldEnum.DAY:
                return(ChronoField.DAY_OF_MONTH);

            case CalendarFieldEnum.MONTH:
                return(ChronoField.MONTH_OF_YEAR);

            case CalendarFieldEnum.WEEK:
                return(ChronoField.ALIGNED_WEEK_OF_YEAR);

            case CalendarFieldEnum.YEAR:
                return(ChronoField.YEAR);
            }

            throw new ArgumentException("invalid value", "enum");
        }
Example #4
0
        public static ChronoUnit GetChronoUnit(this CalendarFieldEnum @enum)
        {
            switch (@enum)
            {
            case CalendarFieldEnum.MILLISEC:
                return(ChronoUnit.MILLIS);

            case CalendarFieldEnum.SECOND:
                return(ChronoUnit.SECONDS);

            case CalendarFieldEnum.MINUTE:
                return(ChronoUnit.MINUTES);

            case CalendarFieldEnum.HOUR:
                return(ChronoUnit.HOURS);

            case CalendarFieldEnum.DAY:
                return(ChronoUnit.DAYS);

            case CalendarFieldEnum.MONTH:
                return(ChronoUnit.MONTHS);

            case CalendarFieldEnum.WEEK:
                return(ChronoUnit.WEEKS);

            case CalendarFieldEnum.YEAR:
                return(ChronoUnit.YEARS);
            }

            throw new ArgumentException("invalid value", "enum");
        }
Example #5
0
        public static string GetValidList(this CalendarFieldEnum @enum)
        {
            var builder   = new StringBuilder();
            var delimiter = "";

            var values = Enum.GetValues(typeof(CalendarFieldEnum));

            foreach (CalendarFieldEnum value in values)
            {
                foreach (String name in GetNames(value))
                {
                    builder.Append(delimiter);
                    builder.Append(name);
                    delimiter = ",";
                }
            }

            return(builder.ToString());
        }
Example #6
0
 public CalendarOpRound(CalendarFieldEnum fieldName, DatetimeMethodEnum method)
 {
     _fieldName = fieldName;
     if (method == DatetimeMethodEnum.ROUNDCEILING)
     {
         _code = ApacheCommonsDateUtils.MODIFY_CEILING;
     }
     else if (method == DatetimeMethodEnum.ROUNDFLOOR)
     {
         _code = ApacheCommonsDateUtils.MODIFY_TRUNCATE;
     }
     else if (method == DatetimeMethodEnum.ROUNDHALF)
     {
         _code = ApacheCommonsDateUtils.MODIFY_ROUND;
     }
     else
     {
         throw new ArgumentException("Unrecognized method '" + method + "'");
     }
 }
Example #7
0
 public CalendarOp GetOp(DatetimeMethodEnum method, String methodNameUsed, IList <ExprNode> parameters, ExprEvaluator[] evaluators)
 {
     if (method == DatetimeMethodEnum.WITHTIME)
     {
         return(new CalendarOpWithTime(evaluators[0], evaluators[1], evaluators[2], evaluators[3]));
     }
     if (method == DatetimeMethodEnum.WITHDATE)
     {
         return(new CalendarOpWithDate(evaluators[0], evaluators[1], evaluators[2]));
     }
     if (method == DatetimeMethodEnum.PLUS || method == DatetimeMethodEnum.MINUS)
     {
         return(new CalendarOpPlusMinus(evaluators[0], method == DatetimeMethodEnum.MINUS ? -1 : 1));
     }
     if (method == DatetimeMethodEnum.WITHMAX ||
         method == DatetimeMethodEnum.WITHMIN ||
         method == DatetimeMethodEnum.ROUNDCEILING ||
         method == DatetimeMethodEnum.ROUNDFLOOR ||
         method == DatetimeMethodEnum.ROUNDHALF ||
         method == DatetimeMethodEnum.SET)
     {
         CalendarFieldEnum fieldNum = CalendarOpUtil.GetEnum(methodNameUsed, parameters[0]);
         if (method == DatetimeMethodEnum.WITHMIN)
         {
             return(new CalendarOpWithMin(fieldNum));
         }
         if (method == DatetimeMethodEnum.ROUNDCEILING || method == DatetimeMethodEnum.ROUNDFLOOR || method == DatetimeMethodEnum.ROUNDHALF)
         {
             return(new CalendarOpRound(fieldNum, method));
         }
         if (method == DatetimeMethodEnum.SET)
         {
             return(new CalendarOpSet(fieldNum, evaluators[1]));
         }
         return(new CalendarOpWithMax(fieldNum));
     }
     throw new IllegalStateException("Unrecognized calendar-op code '" + method + "'");
 }
Example #8
0
 public CalendarOpWithMin(CalendarFieldEnum fieldName)
 {
     _fieldName = fieldName;
 }
Example #9
0
 public CalendarOpSet(CalendarFieldEnum fieldName, ExprEvaluator valueExpr)
 {
     _fieldName = fieldName;
     _valueExpr = valueExpr;
 }
Example #10
0
 public ReformatOpGetField(CalendarFieldEnum fieldNum, TimeZoneInfo timeZone)
 {
     _fieldNum = fieldNum;
     _timeZone = timeZone;
 }
Example #11
0
 public ReformatOpGetField(CalendarFieldEnum fieldNum, TimeZoneInfo timeZone, TimeAbacus timeAbacus)
 {
     _fieldNum   = fieldNum;
     _timeZone   = timeZone;
     _timeAbacus = timeAbacus;
 }
Example #12
0
 public ReformatOp GetOp(
     TimeZoneInfo timeZone,
     TimeAbacus timeAbacus,
     DatetimeMethodEnum method,
     string methodNameUsed,
     IList <ExprNode> parameters)
 {
     if (method == DatetimeMethodEnum.GET)
     {
         CalendarFieldEnum fieldNum = CalendarOpUtil.GetEnum(methodNameUsed, parameters[0]);
         return(new ReformatOpGetField(fieldNum, timeZone, timeAbacus));
     }
     if (method == DatetimeMethodEnum.FORMAT)
     {
         return(FORMAT_STRING);
     }
     if (method == DatetimeMethodEnum.TOCALENDAR)
     {
         return(new ReformatOpToCalendar(timeZone, timeAbacus));
     }
     if (method == DatetimeMethodEnum.TOMILLISEC)
     {
         return(new ReformatOpToMillisec(timeZone));
     }
     if (method == DatetimeMethodEnum.TODATE)
     {
         return(new ReformatOpToDateTimeOffset(timeZone, timeAbacus));
     }
     if (method == DatetimeMethodEnum.GETDAYOFMONTH)
     {
         return(new ReformatOpEval <int>(CalendarEvalStatics.DAY_OF_MONTH, timeZone, timeAbacus));
     }
     if (method == DatetimeMethodEnum.GETMINUTEOFHOUR)
     {
         return(new ReformatOpEval <int>(CalendarEvalStatics.MINUTE_OF_HOUR, timeZone, timeAbacus));
     }
     if (method == DatetimeMethodEnum.GETMONTHOFYEAR)
     {
         return(new ReformatOpEval <int>(CalendarEvalStatics.MONTH_OF_YEAR, timeZone, timeAbacus));
     }
     if (method == DatetimeMethodEnum.GETDAYOFWEEK)
     {
         return(new ReformatOpEval <DayOfWeek>(CalendarEvalStatics.DAY_OF_WEEK, timeZone, timeAbacus));
     }
     if (method == DatetimeMethodEnum.GETDAYOFYEAR)
     {
         return(new ReformatOpEval <int>(CalendarEvalStatics.DAY_OF_YEAR, timeZone, timeAbacus));
     }
     if (method == DatetimeMethodEnum.GETERA)
     {
         return(new ReformatOpEval <int>(CalendarEvalStatics.ERA, timeZone, timeAbacus));
     }
     if (method == DatetimeMethodEnum.GETHOUROFDAY)
     {
         return(new ReformatOpEval <int>(CalendarEvalStatics.HOUR_OF_DAY, timeZone, timeAbacus));
     }
     if (method == DatetimeMethodEnum.GETMILLISOFSECOND)
     {
         return(new ReformatOpEval <int>(CalendarEvalStatics.MILLIS_OF_SECOND, timeZone, timeAbacus));
     }
     if (method == DatetimeMethodEnum.GETSECONDOFMINUTE)
     {
         return(new ReformatOpEval <int>(CalendarEvalStatics.SECOND_OF_MINUTE, timeZone, timeAbacus));
     }
     if (method == DatetimeMethodEnum.GETWEEKYEAR)
     {
         return(new ReformatOpEval <int>(CalendarEvalStatics.WEEKYEAR, timeZone, timeAbacus));
     }
     if (method == DatetimeMethodEnum.GETYEAR)
     {
         return(new ReformatOpEval <int>(CalendarEvalStatics.YEAR, timeZone, timeAbacus));
     }
     if (method == DatetimeMethodEnum.BETWEEN)
     {
         if (ExprNodeUtility.IsAllConstants(parameters))
         {
             return(new ReformatOpBetweenConstantParams(parameters, timeZone));
         }
         return(new ReformatOpBetweenNonConstantParams(parameters, timeZone));
     }
     throw new IllegalStateException("Unrecognized date-time method code '" + method + "'");
 }