Intereting Posts
Считать общее количество элементов списка в ListView Как обрабатывать RESTful обновление удаленного сервера с помощью SyncAdapter Кинжал 2 Именованный не может быть предоставлен без метода @Provides Как я могу подключиться к определенной сети Wi-Fi в Android программно? AndroidAnnotations, как добавить код инициализации после onCreate Получение высоты текстового представления перед рендерингом в макет Стеки останавливаются перед тем, как перейти к моему коду (на Android с помощью NDK) Предварительный просмотр дизайнера студии Android: как включить раму устройства? Проверьте, что HTTP-запрос поступает из моего приложения для Android Android: Как обновить пользовательский интерфейс от AsyncTask, если AsyncTask находится в отдельном классе? Что такое фильтры намерений в Android? Подшипник для компаса Android Странное поведение Android при изменении имени приложения и ярлыка активности Android, KSoap2 и .NET Web Service с параметрами = результат NULL Project.properties в проекте android

Проверьте, находится ли DAY_OF_WEEK между понедельником и пятницей

Я пытаюсь создать метод, который проверяет, находится ли «сегодня» с понедельника по пятницу. Для этого я получаю с этой строкой 'int day = Calendar.DAY_OF_WEEK;' Фактический день. После этого я заполняю ArrayList днями (понедельник, вторник, Wendsday, четверг и пятница). Теперь, когда я проверяю, действительно ли фактический день в моем ArrayList, я устанавливаю boolean DAY = true else, я устанавливаю boolean DAY = false . Я пробовал метод сегодня и вчера, но он всегда устанавливает логическое значение false.

Что мне нужно изменить, чтобы мой код работал? Здесь вы найдете код.

Код

  int day = Calendar.DAY_OF_WEEK; ArrayList<Integer> daylist = new ArrayList<Integer>(); daylist.add(Calendar.MONDAY); daylist.add(Calendar.TUESDAY); daylist.add(Calendar.WEDNESDAY); daylist.add(Calendar.THURSDAY); daylist.add(Calendar.FRIDAY); if (daylist.contains(day)){ DAY = true; }else{ DAY = false; } 

Solutions Collecting From Web of "Проверьте, находится ли DAY_OF_WEEK между понедельником и пятницей"

Вау, это похоже на попытку убить москита термоядерной боеголовкой 🙂

Java гарантирует (в 1.5) (по крайней мере, не более 1.8 ), что значения SUNDAY через SATURDAY смежны (от 1 до 7), поэтому просто проверить диапазон.

Однако DAY_OF_WEEK не является днем ​​недели, это номер поля (со значением 7), который должен быть передан получателю для получения дня недели. Единственный раз, когда Calendar.DAY_OF_WEEK сам будет соответствовать фактическому дню, будет по субботам.

Вы можете использовать код, например:

 Calendar myDate = Calendar.getInstance(); // set this up however you need it. int dow = myDate.get (Calendar.DAY_OF_WEEK); boolean isWeekday = ((dow >= Calendar.MONDAY) && (dow <= Calendar.FRIDAY)); 

После этого isWeekday будет правдой, если и только если день от myDate был с понедельника по пятницу включительно.

int day = Calendar.DAY_OF_WEEK; Должен быть

 Calendar cal; // The calendar object ....your other code for getting the date goes here.... int day = cal.get(Calendar.DAY_OF_WEEK); 

Ваш текущий код просто получает значение константы Calendar.DAY_OF_WEEK .

Это должно сделать трюк для вас, я предполагаю.

 int day = cal.get(Calendar.DAY_OF_WEEK); if (day >= Calendar.MONDAY && day <= Calendar.FRIDAY){ DAY = true; }else{ DAY = false; } 

Первый Calendar.DAY_OF_WEEK – это целочисленное поле, которое всегда дает вам 7. Вам нужно создать экземпляр календаря, например Calendar cal = Calendar.getInstance (); По умолчанию он дает текущую дату в текущем часовом поясе. Затем вы можете вызвать cal.get (Calendar.DAY_OF_WEEK); Который даст вам любой день между воскресенью и субботой

Теперь вы можете проверить что-то подобное

  if(cal.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY || cal.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY) { System.out.println("Weekend"); } else { System.out.println("Weekday"); } 

Вы можете применить эту логику к своей проблеме !!

 int day = Calendar.DAY_OF_WEEK; 

Логика здесь нарушена. DAY_OF_WEEK – это постоянная идентификация того типа данных, который требуется извлечь из экземпляра Calendar .

Самое простое решение вашей проблемы (поскольку Calendar.FRIDAY> …> Calendar.MONDAY) является

 Calendar now = Calendar.getInstance(); int day = now.get(Calendar.DAY_OF_WEEK); if (day >= Calendar.MONDAY && day <= Calendar.FRIDAY) // do something