Esempio n. 1
0
        public static bool TryParse(string startTime, string endTime, DateTime epoch, out DateRange result)
        {
            result = null;
            switch (startTime.Trim().Length)
            {
            //Year
            case 4:
            {
                if (!int.TryParse(startTime, out var y1))
                {
                    return(false);
                }
                if (y1 < 1 || y1 > 9999)
                {
                    return(false);
                }

                if (!int.TryParse(endTime, out var y2))
                {
                    return(false);
                }
                if (y2 < 1 || y2 > 9999)
                {
                    return(false);
                }

                result = new DateRange(new DateTime(y1, 1, 1, 0, 0, 0, epoch.Kind), new DateTime(y2, 1, 1, 0, 0, 0, epoch.Kind));
                return(true);
            }

            //Month
            case 7:
            {
                if (!DateTime.TryParse(startTime, out var v1))
                {
                    return(false);
                }

                if (!DateTime.TryParse(endTime, out var v2))
                {
                    return(false);
                }

                result = new DateRange(v1, v2, DateTimeTypeEnum.Month, epoch);

                return(true);
            }

            //Time
            case 8:
            {
                if (!DateTime.TryParse(startTime, out var v1))
                {
                    return(false);
                }

                if (!DateTime.TryParse(endTime, out var v2))
                {
                    return(false);
                }

                result = new DateRange(v1, v2, DateTimeTypeEnum.Time, epoch);

                return(true);
            }

            //Date
            case 10:
            {
                if (!DateTime.TryParse(startTime, out var v1))
                {
                    return(false);
                }

                if (!DateTime.TryParse(endTime, out var v2))
                {
                    return(false);
                }

                result = new DateRange(v1, v2, DateTimeTypeEnum.Date, epoch);

                return(true);
            }

            //DateTime
            default:
            {
                if (!DateTime.TryParse(startTime, out var v1))
                {
                    return(false);
                }

                if (!DateTime.TryParse(endTime, out var v2))
                {
                    return(false);
                }

                result = new DateRange(v1, v2, DateTimeTypeEnum.DateTime, epoch);

                return(true);
            }
            }
        }
Esempio n. 2
0
 public static bool TryParse(string[] input, out DateRange result)
 {
     result = null;
     return(input.Length == 2 && TryParse(input[0], input[1], DefaultEpoch, out result));
 }