コード例 #1
0
        public Span Handle(System.Collections.Generic.IList <Token> tokens,
                           Options options)
        {
            var month       = tokens[1].GetTag <RepeaterMonthName>();
            var day         = tokens[2].GetTag <OrdinalDay>().Value;
            var time_tokens = tokens.Skip(3).ToList();
            var year        = options.Clock().Year;

            if (Time.IsMonthOverflow(year, (int)month.Value, day))
            {
                return(null);
            }
            try
            {
                if (time_tokens == null || time_tokens.Count == 0)
                {
                    var start = Time.New(year, (int)month.Value, day);
                    var end   = start.AddDays(1);
                    return(new Span(start, end));
                }
                else
                {
                    var dayStart = Time.New(year, (int)month.Value, day);
                    return(Utils.DayOrTime(dayStart, time_tokens, options));
                }
            }
            catch (ArgumentException)
            {
                return(null);
            }
        }