Библиотека С# для анализа человекообразных интервалов времени - программирование
Подтвердить что ты не робот

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

Есть ли библиотека, которая существует, которая будет анализировать человекочитаемые временные интервалы в .net TimeSpan?

Мне нужно что-то, что будет анализировать строки, такие как

30 days
1 week
5 hours

Есть ли такая вещь? Его, вероятно, не слишком сложно написать, но если что-то там, было бы намного проще!

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

4b9b3361

Ответ 1

Я немного взломал это, я играл с парсерами, поскольку я ничего не знал о них, поэтому не ожидайте качества. Но вы можете получить код здесь: http://timestamper.codeplex.com/

Я долго не смотрел на него, но я уверен, что он может сделать все, что вы упомянули выше.

Edit:

Только что отметили, что вам нужен объект timepan, а не дата. Код, который я предоставил, вернет DateTime reletive на сегодняшний день i.e.

"2 дня" будет: DateTime.Now.AddDays(2);

По крайней мере, я думаю, что это то, что сделано, вполне может быть. Если это так, вы должны просто получить промежуток времени между двумя DateTimes.

Ответ 2

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

См. www.datejs.com

Ответ 3

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

Также, если вам не нравится синтаксис в статье, вам нужно всего лишь создать парсер, который преобразует до тиков, который может использоваться классом конструктора timespan.

Ответ 4

Это не применимо напрямую, но моя компания разработала .NET библиотека, которая делает это для дат. Сопровождающий, который работает для промежутков (более или менее точно, что вы просите), запланирован для "когда мы обходим его". Если будет достаточно интереса, это может стать раньше.