C # Работа с вводом времени - PullRequest
0 голосов
/ 08 ноября 2018

Допустим, например, что я хочу, чтобы пользователь ввел время, входные данные должны быть в формате ЧЧ: ММ, а входные данные должны содержать двоеточие во входных данных пользователей. Как мне будет создать и сохранить это значение?

Входные данные поступят из текстового поля в окне WPF

1 Ответ

0 голосов
/ 08 ноября 2018

не совсем точный вопрос, но позвольте мне немного помочь:

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

string text = "21:05"; (instead you retrieve the content of your text box obviously)
string format = "HH:mm";
CultureInfo fr = new CultureInfo("fr-FR");
DateTime dt = DateTime.ParseExact(text, format, fr);

[РЕДАКТИРОВАТЬ] на основе комментария Дмитрия:

string text = "21:05";
string format = "HH:mm";
CultureInfo invariant = System.Globalization.CultureInfo.InvariantCulture;
DateTime dt;
if (DateTime.TryParseExact(text, format, invariant, DateTimeStyles.None, out dt))
{
// do your stuff
}
else
{
// handle the fact you cannot parse the datetime
}

Будьте осторожны, культурныйконтекст может быть очень важным в зависимости от вашего случая.Если вы хотите избежать неправильного ввода данных от пользователя, вам следует подумать о том, чтобы выполнить проверку содержимого поля, когда пользователь вводит его.Это способ заставить его соответствовать формату, который вы ожидаете.

Посмотрите здесь, например: Реализация проверки для текстовых полей WPF , но вы сможете найти другие примеры того, как это сделать в SO, или просто Google.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...