Пример #1
0
        private static TimeSpan AddTo(TimeSpan timeSpan, string numberWords, UnitOfTime unit)
        {
            var number = NumbersHelper.ParseNumber(numberWords);

            switch (unit)
            {
            case UnitOfTime.Second: return(timeSpan.Add(TimeSpan.FromSeconds(number)));

            case UnitOfTime.Minute: return(timeSpan.Add(TimeSpan.FromMinutes(number)));

            case UnitOfTime.Hour: return(timeSpan.Add(TimeSpan.FromHours(number)));

            case UnitOfTime.Day: return(timeSpan.Add(TimeSpan.FromDays(number)));

            case UnitOfTime.Week: return(timeSpan.Add(TimeSpan.FromDays(number * 7)));
            }
            return(timeSpan);
        }
Пример #2
0
        public static TimeSpan WordsToTimeSpan(string timeString)
        {
            var timeWords      = timeString.Replace("-", "").Split(' ');
            var numberBuffer   = String.Empty;
            var resultTimeSpan = new TimeSpan();

            foreach (var word in timeWords)
            {
                if (NumbersHelper.IsNumber(word))
                {
                    numberBuffer = $"{numberBuffer} {word}";
                }
                else if (IsTimeWord(word, out var unitOfTime))
                {
                    resultTimeSpan = AddTo(resultTimeSpan, numberBuffer, unitOfTime);
                    numberBuffer   = String.Empty;
                }
            }
            return(resultTimeSpan);
        }