Библиотека C# для парсинга человекочитаемых отрезков времени

Существует ли библиотека, которая существует, который проанализирует человекочитаемые промежутки в .net TimeSpan?

Мне нужно что-то, что проанализирует строки как

30 days
1 week
5 hours

Такая вещь существует? Вероятно, не слишком трудно для записи меня, но если бы что-то там, это было бы настолько легче!

Мне в настоящее время не нужна функциональность как "30 дней, 3 часа, 5 минут", просто одно значение, но она не могла причинить боль!

14
задан Luke Girvin 29 November 2019 в 13:07
поделиться

5 ответов

I took a crack at this sometime back, I was playing with parsers as I knew nothing about them so don't expect quality. But you can get the code here: http://timestamper.codeplex.com/

I havent looked at it for a while, but im pretty sure it can do all the things that you mentioned above.

Edit:

Just noted that you wanted a timespan object returned and not a date time. The code I provided will return a DateTime reletive to today i.e.

"2 days" will be: DateTime.Now.AddDays(2);

At least I think this is what is did, can quite be sure. If this is the case, you should just be able to get the timespan between the two DateTimes.

4
ответ дан 1 December 2019 в 17:09
поделиться

Ну, я знаю, что javascript-код datejs очень хорошо работает для таких дат. Вы можете посмотреть на него, чтобы получить вдохновение для кода C #. Не уверен, что это так сильно помогает; но может быть интересно.

См. www.datejs.com

-1
ответ дан 1 December 2019 в 17:09
поделиться

Непосредственно это не применимо, но моя компания разработала .NET библиотека , которая делает это для дат. Аналог, который работает для промежутков (более или менее точно то, о чем вы просите), планируется, «когда мы будем нуждаться в нем». Если будет достаточно интереса, это может произойти раньше.

-1
ответ дан 1 December 2019 в 17:09
поделиться

это доступные способы анализа даты и времени:

Анализ строк даты и времени

-3
ответ дан 1 December 2019 в 17:09
поделиться

Я знаю, что вы искали библиотеку для этого, но похоже, что люди, которым нравится этот синтаксис, являются разработчиками Ruby, и они придерживаются Ruby. Если вы действительно хотите это сделать, довольно просто сделать что-то похожее на .Net Extensions, которое будет немного более читаемым. Посмотрите эту статью http://haacked.com/archive/2007/05/24/ruby-like-syntax-in-c-3.0.aspx

Также, если вам не нравится синтаксис в article, то все, что вам нужно сделать, это создать синтаксический анализатор, преобразующий в тики, который может использоваться классом конструктора timespan.

-1
ответ дан 1 December 2019 в 17:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: