在日历Android中禁用整个星期(周末除外) [英] Disable whole week except weekend in calender Android
本文介绍了在日历Android中禁用整个星期(周末除外)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我目前正在使用 MaterialDateTimePicker 库作为日期和时间选择器,
但是我面临的问题是我无法禁用整个星期,除非我从API获得某些天。
Im currently Using MaterialDateTimePicker library for date and time picker, But im facing issue where i cant disable whole week except certain days that i get from API .
在库中,它说您可以使用
In the library it says you can achieve something like this by using
Calendar[] days = new Calendar[13];
for (int i = -6; i < 7; i++) {
Calendar day = Calendar.getInstance();
day.add(Calendar.DAY_OF_MONTH, i * 2);
days[i + 6] = day;
}
dpd.setSelectableDays(days);
但是我如何更改名称以禁用工作日
but how do i change that to disable week days by name
推荐答案
经过一番搜索和调整后,我设法使用以下代码进行了操作:
After some searching and adjusting i managed to do it with the following code :
Calendar day;
List<Calendar> weekends = new ArrayList<>();
int weeks = 5;
for (int i = 0; i < (weeks * 7); i = i + 7) {
for (int d = 0; d < slots.getResponse().getDays().size(); d++) {
day = Calendar.getInstance();
switch (slots.getResponse().getDays().get(d)) {
case "Sunday":
day.add(Calendar.DAY_OF_YEAR, (Calendar.SUNDAY - day.get(Calendar.DAY_OF_WEEK) + i));
weekends.add(day);
break;
case "Monday":
day.add(Calendar.DAY_OF_YEAR, (Calendar.MONDAY - day.get(Calendar.DAY_OF_WEEK) + i));
weekends.add(day);
break;
case "Tuesday":
day.add(Calendar.DAY_OF_YEAR, (Calendar.TUESDAY - day.get(Calendar.DAY_OF_WEEK) + i));
weekends.add(day);
break;
case "Wednesday":
day.add(Calendar.DAY_OF_YEAR, (Calendar.WEDNESDAY - day.get(Calendar.DAY_OF_WEEK) + i));
weekends.add(day);
break;
case "Thursday":
day.add(Calendar.DAY_OF_YEAR, (Calendar.THURSDAY - day.get(Calendar.DAY_OF_WEEK) + i));
weekends.add(day);
break;
case "Friday":
day.add(Calendar.DAY_OF_YEAR, (Calendar.FRIDAY - day.get(Calendar.DAY_OF_WEEK) + i));
weekends.add(day);
break;
case "Saturday":
day.add(Calendar.DAY_OF_YEAR, (Calendar.SATURDAY - day.get(Calendar.DAY_OF_WEEK) + i));
weekends.add(day);
break;
}
}
}
Calendar[] SelectableDays = weekends.toArray(new Calendar[weekends.size()]);
dpd.setSelectableDays(SelectableDays);
这篇关于在日历Android中禁用整个星期(周末除外)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文