Как зайти в Даркнет?!
25th January, 01:11
6
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
895
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
914
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
906
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4381
0
Помогите пожалуйста решить задачи
24th November, 23:53
6086
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4351
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4396
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Естественный язык Дата / Время парсер для .NET?
Кто-нибудь знает о парсере даты и времени .NET, похожем на хронический для Ruby (обрабатывает такие вещи, как "tomorrow" или "3 часа дня в следующий четверг")?
Примечание: Я действительно пишу Ruby (именно так я знаю о хроническом), но этот проект должен использовать .NET.
Мы разработали именно то, что вы ищете на внутреннем проекте. Мы думаем сделать это достоянием общественности, если в этом есть достаточная необходимость. Взгляните на этот блог для получения более подробной информации: http://precisionsoftwaredesign.com/blog.php .
Не стесняйтесь обращаться ко мне, если вы заинтересованы: contact@precisionsoftware.us
Эта библиотека теперь является проектом SourceForge. Страница находится по адресу:
http://www.SourceForge.net/p/naturaldate
assembly находится в разделе загрузки, а источник доступен с Mercurial.
Я не знаю, но есть порт Java под названием jchronic . Во всяком случае, это может стать хорошей отправной точкой для вашего собственного дела. Или, возможно, вы могли бы использовать полуавтоматический переводчик Java на C#, как осьминог , чтобы помочь перевести его. (Или что-нибудь получше, если кто-нибудь что-нибудь знает.)
Ладно, еще один возможный вариант: не могли бы вы использовать хронический код, используя IronRuby ?
Порт .NET хронического существует. Смотрите https://github.com/robertwilczynski/nChronic . Я создал fork из него с некоторыми улучшениями и исправлениями ошибок, вот: https://github.com/dorony/nChronic (отправил запросы на вытягивание, автор до сих пор не ответил).
@Blair Конрад-хорошие идеи! Я пытался получить хронический запуск под IronRuby, но у меня были некоторые проблемы с зависимостями - я не знаю, что он еще готов.
Я нашел проект на Codeplex (DateTimeEnglishParser), который пытается сделать то же самое. Он еще не справляется с годами или временем, но это хорошее начало. Я немного поработал над проектом и внес свой вклад в патч, чтобы лучше обрабатывать написанные числа.
Это интересная проблема, и она определенно помогла мне лучше понять регулярные выражения, поэтому я думаю, что продолжу работать над ней.
Ранее был похожий поток , и он дал ссылку на библиотеку на CodeProject, которая, похоже, делает то, что вы хотите: http://www.codeproject.com/KB/edit/dateparser.aspx , но, к сожалению, библиотека, похоже, написана на MFC, поэтому вам придется сделать из нее DLL, а затем вызвать ее из вашей программы .NET.
Палмси, у меня совсем недавно было такое же требование, поэтому я пошел дальше и написал простой парсер. Это не самый хороший код, но он будет обрабатывать такие вещи, как:
"Today at 2pm" "Tuesday at 2pm - 15th july 2010 at 2am" "В прошлом году в 2 часа ночи-завтра в 14:30" "18 июля 2010 года в 2:45pm"
Приклеил его на codeplex, так как, возможно, кто-то еще найдет его полезным. Проверьте это: http://timestamper.codeplex.com/
Я проверил несколько фреймворков, и Python-е ParseDateTime работали лучше всего. Его можно использовать от .NET до IronPython.
Если кто-то заинтересован в полном образце проекта, прокомментируйте ответ, и я попытаюсь создать его.
EDIT
Как и было предложено, вот простой проект, который вы можете использовать с библиотекой:
http://www.assembla.com/code/relativedateparser/subversion/nodes
Попробуйте использовать следующий пример использования, например:
- 25 августа 2008 года
- 25 августа 2008 года
- 25 августа 5 вечера
- 5 вечера 25 августа
- в следующую субботу
- завтра
- в следующий четверг в 4 часа дня
- в 4 часа дня
- ОВОП
- завтра еод
- во вторник ОВОП
- эой
- эом
- через 5 минут
- Через 5 минут
- За 5 часов до этого момента
- За 2 часа до полудня
- Через 2 дня после завтрашнего дня
Я не знаю ни одного, но это звучало как классная проблема, так что вот мой удар по ней (VB.NET):
Private Function ConvertDateTimeToStringRelativeToNow(ByVal d As DateTime) As String
Dim diff As TimeSpan = DateTime.Now().Subtract(d)
If diff.Duration.TotalMinutes < 1 Then Return "Now"
Dim str As String
If diff.Duration.TotalDays > 365 Then
str = CInt(diff.Duration.TotalDays / 365).ToString() & " years"
ElseIf diff.Duration.TotalDays > 30 Then
str = CInt(diff.TotalDays / 30).ToString() & " months"
ElseIf diff.Duration.TotalHours > 24 Then
str = CInt(diff.Duration.TotalHours / 24) & " days"
ElseIf diff.Duration.TotalMinutes > 60 Then
str = CInt(diff.Duration.TotalMinutes / 60) & " minutes"
Else
str = CInt(diff.Duration.TotalMinutes).ToString() & " minutes"
End If
If str.StartsWith("1") Then str = str.SubString(0, str.Length - 1)
If diff.TotalDays > 0 Then
str &= " ago"
Else
str &= " from now"
End If
Return str
End Function
Это действительно не так сложно, как те, которые уже существуют, но это работает хорошо, я думаю. Это может быть хороший метод расширения.
@ Burton: я думаю, что он имел в виду другой путь, по крайней мере, из примера на связанной странице:
Chronic.parse('tomorrow')
#=> Mon Aug 28 12:00:00 PDT 2006
Chronic.parse('monday', :context => :past)
#=> Mon Aug 21 12:00:00 PDT 2006
Chronic.parse('this tuesday 5:00')
#=> Tue Aug 29 17:00:00 PDT 2006
Я думал, что тоже попробую это сделать, пока не понял! (хорошая реализация, хотя)