Как проверить достоверность формата даты (например,% d /% m /% Y-% H:% M:% S)? - PullRequest
2 голосов
/ 24 июля 2011

Я использую boost optionsparser для разбора аргументов командной строки, передаваемых пользователем. Теперь у программы была возможность для пользователя указать свой формат даты.

как

program -d %d/%m/%Y-%H:%M:%S, program -d %d/%m/%Y и т. Д.

Проблема, с которой я сталкиваюсь, * Как проверить правильность строки формата, переданной пользователем? *

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

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

1 Ответ

3 голосов
/ 24 июля 2011

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

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

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

...