【问题标题】:Disable whole week except weekend in calender Android在Android日历中禁用除周末外的整周
【发布时间】:2019-01-31 09:13:58
【问题描述】:

我目前正在使用MaterialDateTimePicker 库作为日期和时间选择器, 但我面临的问题是我无法禁用整个星期,除了我从 API 获得的某些日子。

在库中,它说您可以通过使用

来实现这样的目标
  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);

但我如何更改它以按名称禁用工作日

【问题讨论】:

    标签: android datepicker calendar


    【解决方案1】:

    经过一番搜索和调整,我设法用以下代码做到了:

                    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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-14
      • 2019-09-07
      • 2017-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-15
      相关资源
      最近更新 更多