Как проверить Час и Минуты, которые пришли из текстового поля Swing? - PullRequest
0 голосов
/ 01 февраля 2011

У меня есть окно, которое содержит текстовое поле ЧЧ: мм времени, в формате 24 часа

Мне нужно проверить, если пользователь ввел какой-либо недопустимый час, например, 28:00, 99:00, 24: 01.

Какой самый лучший и простой способ сделать это?

некоторый код ниже того, что в настоящее время делает эту работу неправильно и дает ошибки в разборе даты.Сегодня у меня случайный час, и пользователь нажал 99:99 в этом текстовом поле.

Этот код не мой, но я должен это исправить.

Я застрял с ним, пыталсяпроверить как String бесполезно, и я не могу найти хороший способ сделать его Date без необходимости указывать год, месяц и т. д ... тоже.

Пожалуйста, забудьте о возвращении -1 вместо броскаИсключение составляет старый код, который нельзя изменить.

, чтобы помочь понять:
Statics.hF2 = SimpleDateFormat (ЧЧ: мм)
this.cmpHora.getText () = Это поле сзначение
Statics.df_ddmmyy = Другой формат даты
Statics.m2ms = преобразует минуты в миллисекунды

// CODE

public long getDataEmLong ()
{
   try
   {
      Calendar hour= Calendar.getInstance();
      new GregorianCalendar().
      hour.setTime( Statics.hF2.parse( this.cmpHora.getText() ) );
      return Statics.df_ddmmyy.parse( this.cmpData.getText() ).getTime() + Statics.m2ms( hour.get( Calendar.HOUR_OF_DAY ) * 60 ) + Statics.m2ms( hour.get( Calendar.MINUTE ) );
   } catch ( Exception e )
   {
      e.printStackTrace();
      return -1;
   }

}

Cheers!

Ответы [ 3 ]

4 голосов
/ 01 февраля 2011

Регулярные выражения для спасения :

public boolean validTime24(String time) {
    return time.matches("^([01]\d|2[0-3]):[0-5]\d$")
}

Это проверит формат строки.Тогда ты сможешь разобрать время оттуда.

3 голосов
/ 01 февраля 2011

Вставьте это в ваш класс и выполните метод validateTime внутри вашего барахла.

0 голосов
/ 02 февраля 2011

Вы можете использовать JFormattedTextField с правильным установленным форматом даты или времени.Поле вернет вам правильные значения.

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