Я разрабатываю приложение, которое требует, чтобы пользователь выбрал параметры «Время от до», но проблема, которую я не мог проверить эти два раза, как я хочу избежать, если в первый раз больше, чем во второй раз
@Override
public void onTimeSet(int id, TimePicker view, int hourOfDay, int minute) {
String AM_PM = " AM";
String mm_precede = "";
if (hourOfDay >= 12) {
AM_PM = " PM";
if (hourOfDay >=13 && hourOfDay < 24) {
hourOfDay -= 12;
}
else {
hourOfDay = 12;
}
} else if (hourOfDay == 0) {
hourOfDay = 12;
}
if (minute < 10) {
mm_precede = "0";
}
//Check the started and ended of the an appointment
sTimeApp.setText(hourOfDay + ":" + mm_precede + minute + AM_PM);
eTimeApp.setText(hourOfDay + ":" + mm_precede + minute + AM_PM);
if (sTimeApp.equals(eTimeApp)){
Toast.makeText(this, "Error , Time should be different ",Toast.LENGTH_SHORT).show();
return;
}else {
if (id == 3) {
if (minute <= 9) {
sTimeApp.setText(hourOfDay + ":" + mm_precede + minute + AM_PM);
}
} else if (id == 4) {
if (minute <= 9) {
eTimeApp.setText(hourOfDay + ":" + mm_precede + minute + AM_PM);
}
}
}
}
Я бы порекомендовал использовать Joda Time - пользоваться им намного проще. Просто включите это в свой gradle.build для проекта: скомпилировать 'joda-time: joda-time: 2.9.4'
Затем, чтобы убедиться, что время больше, вы можете сделать что-то вроде (заключить обе даты в их индивидуальные даты и время):
//Note the +1 is required if using a calendar instance to get the month(it's 0-11, opposed to standard 1-12). If not, just remove.
DateTime startTime= new DateTime();
startTime.year().setCopy(theYear).monthOfYear().setCopy(theMonth + 1).dayOfMonth().setCopy(theDay).hourOfDay().setCopy(theHour).minuteOfHour(theMinute);
Затем сделайте что-нибудь вроде:
if (startTime.getMilis() > endTime.getMillis())