Android studio 如何基于datepicker android studio设置最大时间选择器限制

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

如何在特定日期设置限制最大时间选择器? 当我在datepicker中选择星期六时,时间选择器将限制最大小时设置为12.00。但若我在其他日期选择datepicker,那个么时间选择器将限制最大小时设置为15.00(正常)。我使用下面的代码,但失败了,当我选择星期六总是假

日期选择器()

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 
}