Я использую 2-сторонние пикеры в своем приложении, скажем одно для FROM-Time и второе для TO-Time. Теперь я хочу проверить, что при установке TO-Time это не должно быть меньше, чем FROM-Time, и это не позволит изменить время меньше, чем FROM-Time.Как сравнить время в android time picker?
ответ
Вам нужно будет установить onTimeSetListeners для каждого счетчика. В onTimeSet вы получите int hour и int minute. Преобразуйте это в несколько секунд. Затем проверьте, совпадают ли эти два значения. Если они не перекрываются, задайте текстовое значение, например, fromSpinner.setText («10:00 AM»).
EDIT: добавление примерного кода. Вы должны установить следующий onDateSetListener для toTimeSpinner и аналогичный totoTimeSpinner.
private OnDateSetListener onDateSetListener = new OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
Date date = makeDateGMT(year, monthOfYear, dayOfMonth);
if (date.after(fromTimeDate)) {
// We can accept this as a valid toTime
toTimeDate = date;
// Use simpleDateFormat to format Date
toTimeSpinner.setText(formattedDate);
}
}
};
private void makeDateGMT(int year, int month, int day) {
GregorianCalendar calendar = new GregorianCalendar();
calendar.setTimeZone(TIME_ZONE_GMT);
calendar.set(year, monthOfYear, dayOfMonth, hourOfDay, minute);
return calendar.getTime();
}
Чтобы получить текущую дату/время, вы просто создаете новый объект Date.
Для сравнения дат, которые вы используете Date.compareTo():
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date now = new Date();
int difference = now.compareTo(formatter.parse(data));
Согласно документации, разница будет:
значение 0, если аргумент Дата равно этой даты; значение меньше 0, если эта дата предшествует аргументу Date; и значение больше 0, если эта дата после аргумента Date.
if (difference == 0) {
// the dates are equal
}
else if (difference < 0) {
// the date is before now
}
else {
// the date is after now
}
Вы должны обратиться: http://stackoverflow.com/questions/5172593/how-to-calculate-the-time-difference-between-two-time-fields-with-respect-to-t/ 11219953 # 11219953 –
Вам необходимо выполнить эту проверку проверки обратных вызовов, предоставленных 'TimePicker'. – guptakvgaurav
@Supreet Если один из ответов решил вашу проблему, вы должны принять ответ, чтобы помочь людям, которые имеют такую же проблему в будущем. –