Android studio 如何基于datepicker android studio设置最大时间选择器限制
如何在特定日期设置限制最大时间选择器? 当我在datepicker中选择星期六时,时间选择器将限制最大小时设置为12.00。但若我在其他日期选择datepicker,那个么时间选择器将限制最大小时设置为15.00(正常)。我使用下面的代码,但失败了,当我选择星期六总是假 日期选择器()Android studio 如何基于datepicker android studio设置最大时间选择器限制,android-studio,datetimepicker,timepicker,Android Studio,Datetimepicker,Timepicker,如何在特定日期设置限制最大时间选择器? 当我在datepicker中选择星期六时,时间选择器将限制最大小时设置为12.00。但若我在其他日期选择datepicker,那个么时间选择器将限制最大小时设置为15.00(正常)。我使用下面的代码,但失败了,当我选择星期六总是假 日期选择器() public void日期选择器(){ 最终日历calendarMax=Calendar.getInstance(); calendarMax.add(Calendar.DAY,共7个月); final Cale
public void日期选择器(){
最终日历calendarMax=Calendar.getInstance();
calendarMax.add(Calendar.DAY,共7个月);
final Calendar calendarToday=Calendar.getInstance();
int year=calendarToday.get(Calendar.year);
int month=calendarToday.get(Calendar.month);
int day=calendarToday.get(Calendar.day\u OF\u MONTH);
DatePickerDialog DatePickerDialog=DatePickerDialog.newInstance(FormBooking.this,year,month,day);
datePickerDialog.setMinDate(calendarToday);
datePickerDialog.setMaxDate(calendarMax);
//星期天休息
List daysList=new LinkedList();
日历[]天,日历;
Calendar cAux=Calendar.getInstance();
while(calendarToday.getTimeInMillis()6&&selectedDate.get(Calendar.HOUR OF the u DAY)30){
输入_time.setText(“”);
}否则{
时间选择器(真);
}
}否则,如果(selectedDate.get(Calendar.HOUR OF theu DAY)>0&&selectedDate.get(Calendar.HOUR OF theu DAY)6&&now.get(Calendar.HOUR OF theu DAY)=0&&now.get(Calendar.MINUTE)0&&now.get(Calendar.HOUR OF theu DAY)您可以使用以下代码检查所选日期是否为星期六:
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, monthOfYear);// you have increased value of monthOfYear by using ++monthOfYear so you have to use monthOfYear-1
cal.set(Calendar.DAY_OF_MONTH, dayOfMonth);
isSaturday = cal.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY;
并将此布尔值传递给您的timePicker(false,isSaturday)函数。在timePicker函数中,您可以设置maxHours:
int maxHour = 15;
if(isSaturday){
maxHour=12
}
请帮帮我…请帮帮我…请帮帮我…请帮帮我。。。。。。。。。。
public void onDateSet(DatePickerDialog view, int year, int monthOfYear, int dayOfMonth) {
int bulan = (++monthOfYear);
String day_string = String.valueOf(dayOfMonth);
String month_string = String.valueOf(bulan);
if (dayOfMonth < 10) {
day_string = "0" + String.valueOf(dayOfMonth);
}
if (bulan < 10) {
month_string = "0" + String.valueOf(bulan);
}
Calendar selectedDate = Calendar.getInstance();
int mYear = selectedDate.get(Calendar.YEAR);
int mMonth = selectedDate.get(Calendar.MONTH);
int mDay = selectedDate.get(Calendar.DAY_OF_MONTH);
String D = String.valueOf(mDay);
if(String.valueOf(dayOfMonth).equals(D)){ //if choose today
if(selectedDate.get(Calendar.HOUR_OF_DAY)>6 && selectedDate.get(Calendar.HOUR_OF_DAY)<15) {
if(selectedDate.get(Calendar.HOUR_OF_DAY)==14 && selectedDate.get(Calendar.MINUTE)>30) {
input_time.setText("");
} else {
timePicker(true);
}
}else if(selectedDate.get(Calendar.HOUR_OF_DAY)>0 && selectedDate.get(Calendar.HOUR_OF_DAY)<7) {
timePicker(true);
}else{
input_time.setText("");
}
}else{
timePicker(false);
}
input_date.setText("");
input_date.setText(day_string + "." + month_string + "." + year);
}
public void timePicker(boolean isTodayDate){
int minHour = 8;
int maxHour = 15; //max hour, if saturday is 12, but other day, normal maxHour 15
Calendar now = Calendar.getInstance();
TimePickerDialog timepickerdialog = TimePickerDialog.newInstance(
FormBooking.this,
now.get(Calendar.HOUR_OF_DAY),
now.get(Calendar.MINUTE),
true);
if(isTodayDate){ //if choose today
if(now.get(Calendar.HOUR_OF_DAY)>6 && now.get(Calendar.HOUR_OF_DAY)<15){
if(now.get(Calendar.MINUTE)>=0 && now.get(Calendar.MINUTE)<61) {
minHour = now.get(Calendar.HOUR_OF_DAY) + 1;
}
}else if(now.get(Calendar.HOUR_OF_DAY)>0 && now.get(Calendar.HOUR_OF_DAY)<7){
minHour = 8;
}
}
timepickerdialog.setMinTime(minHour, 0, 0);
timepickerdialog.setMaxTime(maxHour, 0, 0);
timepickerdialog.setThemeDark(false);
timepickerdialog.vibrate(false);
timepickerdialog.dismissOnPause(false);
timepickerdialog.show(getFragmentManager(), "Timepickerdialog");
}
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, monthOfYear);// you have increased value of monthOfYear by using ++monthOfYear so you have to use monthOfYear-1
cal.set(Calendar.DAY_OF_MONTH, dayOfMonth);
isSaturday = cal.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY;
int maxHour = 15;
if(isSaturday){
maxHour=12
}