Pull to refresh

Comments 17

Замечательная функция! А знает ли кто-нибудь аналоги для .Net? Ну или хотелось бы взглянуть на код этой самой функции…
PHP — Open Source. Если не лень — можете поковырять исходники на C.
DateTime.TryParse(), DateTime.Parse(), Convert.ToDateTime()
да, пхп.
из того, что я вижу в комментариях она не сработает — нужно готовить под неё текст. а если его готовить — всё равно нужно писать преги чтоб выкусить то, что касается даты )
UFO just landed and posted this here
perl
Date::Parse
Date::Components
DateTime::Format::Builder
DateTime::Format::DateParse
Date::Parse — нет, принимает только простые строки на ввод
Date::Components — то же самое
DateTime::Format::Builder
DateTime::Format::DateParse
и последние тоже.
имхо я бы сделал хеш или обычную таблицу соответствий + регулярки
ну конечно регулярки)) вопрос был в том — занимался ли кто-то уже написанием этих регулярок. судя по всему нет, запланировал себе на завтра набросать. если что получится — выложу сюда.
одних регулярок мало. Для реально работающей системы, которая позволяет ввести дату в абсолютно произвольном формате необходим хороший семантический анализ. А это нехилые такие разработки;)
Лучше разбивать текст на лексемы и описать машину состояний, которая будет конвертировать лексемы в удобоваримый формат, который потом будет парситься с помощью DateTime.Parse().
Это, конечно, сложнее, чем регэкспы, но раз вы «фанат хорошо сделанных вещей», то можно и помучаться =)
Очень интересно зачем это нада…

а если я просто от фанаря что то введу?
а если введу не next monday, а nx mday или любой другой удобный сленг…

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

Если ему дать легко задать «следующий понедельник», то он скорее сделает 2 клика мышью чем будет набирать 10 символов на клавиатуре…
сленг легко распознается лингвистическими системами… по сути вполне достаточно словаря синонимов
да, или частичного подбора, это как раз не большая проблема. именно в этой ситуации задача понять рукописную дату.
для понятных вещей я дам ему автозаполнение
то есть введённые to tod tom next и тд вызовут логичные продолжения. но парсинг от них не зависит
Sign up to leave a comment.

Articles