我需要做一个房间预订应用程序。我想从 datepicker 值中获取日期,然后从 timepicker 值中获取开始时间和结束时间。
为此,我想检查所选日期。然后,检查开始时间和结束时间是否以任何方式重叠,无论是所选日期的开始时间、结束时间还是介于两者之间。我一直在寻找解决方案,但没有找到。
例子 :
用户 A:日期=2013 年 5 月 27 日开始时间=10pm 结束时间=12pm
用户 B:日期=2013 年 5 月 28 日开始时间=10pm 结束时间=12pm
如果我是用户 C,并且我还想要 2013 年 5 月 27 日晚上 10 点到 12 点的时间段,我如何比较日期,如果用户 A 已经占用了该时间段,则比较开始时间和结束时间。
希望有人能指出我正确的方向 - 我是 Android 新手。任何帮助将不胜感激,谢谢!
我的时间选择器代码:
private TimePickerDialog.OnTimeSetListener timePickerStartListener = new TimePickerDialog.OnTimeSetListener() {
public void onTimeSet(TimePicker view, int selectedHour, int selectedMinute) {
hour = selectedHour;
minute = selectedMinute;
// set current time into textview
textStartTime.setText(new StringBuilder().append(padding_str(hour)).append(":").append(padding_str(minute)));
}
};
private TimePickerDialog.OnTimeSetListener timePickerEndListener = new TimePickerDialog.OnTimeSetListener() {
public void onTimeSet(TimePicker view, int selectedHour, int selectedMinute) {
hour = selectedHour;
minute = selectedMinute;
// set current time into textview
textEndTime.setText(new StringBuilder().append(padding_str(hour)).append(":").append(padding_str(minute)));
}
};
private static String padding_str(int c) {
if (c >= 10)
return String.valueOf(c);
else
return "0" + String.valueOf(c);
}
我的日期选择器代码:
private DatePickerDialog.OnDateSetListener datePickerListener
= new DatePickerDialog.OnDateSetListener() {
// when dialog box is closed, below method will be called.
public void onDateSet(DatePicker view, int selectedYear,
int selectedMonth, int selectedDay) {
year = selectedYear;
month = selectedMonth;
day = selectedDay;
// set selected date into textview
tvDisplayDate.setText(new StringBuilder().append(month + 1)
.append("-").append(day).append("-").append(year)
.append(" "));
}
};
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case DATE_DIALOG_ID:
return new DatePickerDialog(this, datePickerListener, year, month, day);
case START_TIME_DIALOG_ID:
return new TimePickerDialog(this, timePickerStartListener, hour, minute, false);
case END_TIME_DIALOG_ID:
return new TimePickerDialog(this, timePickerEndListener, hour, minute, false);
}
return null;
}