У меня есть окно, которое содержит текстовое поле ЧЧ: мм времени, в формате 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!