在日历Android中禁用整个星期(周末除外) [英] Disable whole week except weekend in calender Android

查看:109
本文介绍了在日历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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆