Это делается путем делегирования событий. Событие будет привязываться к элементу-оболочке, но будет делегировано элементу селекторного класса. Вот как это работает.
$('.wrapper-class').on("click", '.selector-class', function() {
// Your code here
});
Элемент-оболочка-оболочка может быть любым ex. документа, тела или вашей обертки. Упаковщик должен уже существовать.
LocalDate date = LocalDate.of(2019, Month.DECEMBER, 25);
switch (recurrence) {
case "Bi-Weekly": {
date = date.plusWeeks(2);
break;
}
case "Month": {
date = date.plusMonths(1);
break;
}
case "Quarterly": {
date = date.plusMonths(3);
break;
}
case "Half Yearly": {
date = date.plusMonths(6);
break;
}
case "Year": {
date = date.plusYears(1);
break;
}
default:
System.err.println("Unrecognized recurrence: " + recurrence);
break;
}
System.out.println("Added for " + recurrence + " gave: " + date);
Попытка кода из разностных строк (в другом порядке) дала:
blockquote>Added for Bi-Weekly gave: 2020-01-08 Added for Year gave: 2020-12-25 Added for Quarterly gave: 2020-03-25 Added for Half Yearly gave: 2020-06-25 Added for Month gave: 2020-01-25
Имейте свой календарь события тоже получили время суток? Нет проблем: код работает так же, если использовать
ZonedDateTime
илиLocalDateTime
вместоLocalDate
.Используемый вами класс
Calendar
плохо спроектирован и давно устарел. Я нахожу java.time, современный Java-интерфейс даты и времени, с которым гораздо приятнее работать. Вот почему я хотел показать вам этот вариант.Вопрос: Могу ли я использовать java.time на Android?
Да, java.time прекрасно работает на старых и новых устройствах Android. Для этого требуется как минимум Java 6 .
- В Java 8 и более поздних версиях и на более новых устройствах Android (начиная с уровня API 26) встроен современный API.
- В Java 6 и 7 получают ThreeTen Backport, бэкпорт современных классов (ThreeTen для JSR 310; см. Ссылки внизу).
- На более старых версиях Android используется Android-версия ThreeTen Backport. Это называется ThreeTenABP. И убедитесь, что вы импортировали классы даты и времени из
org.threeten.bp
с подпакетами.Ссылки
- Учебное пособие по Oracle: Дата и время , объясняющие, как использовать java.time.
- Запрос спецификации Java (JSR) 310 , где
java.time
был впервые описан.- Проект ThreeTen Backport , обратный порт
java.time
для Java 6 и 7 (ThreeTen для JSR-310).- ThreeTenABP , Android-версия ThreeTen Backport
- Вопрос: Как использовать ThreeTenABP в Android Project , с очень подробным объяснением.
[Тысяча сто тридцать одна]
Я думаю, что
.add(Calendar.WEEK_OF_YEAR,2);
является правильным, хотя я бы сделал некоторые тесты на то, как он ведет себя во время смены года