2015-10-23 3 views
-2

Я пытаюсь создать приложение для календарей в Android Studio. Все работает отлично, несмотря на одну мелочь. Когда у меня есть повторяющиеся события (позволяет сказать, еженедельно), а после введения его - который прекрасно работает - и я попытался увеличить его с помощью функции:Дата неправильного увеличения в Java для Android

calendar.add(Calendar.DAY_OF_YEAR, 7); 

происходит следующее: Она вставляет события точно до конца месяца и в следующем году в том же месяце, так как я могу достичь, что также месяц увеличивается, и событие появится в следующем месяце?

Надеюсь, я смогу объяснить, что я имею в виду.

+4

Рассмотрите возможность использования своего кода. – Christopher

ответ

0

Если вы хотите добавить в неделю (7 дней) в календаре, вы должны использовать Calendar.DATE и не Calendar.DAY_OF_YEAR:

Calendar cal = Calendar.getInstance() 
cal.add(Calendar.DATE, 7); 
+0

Ваше решение не работает ...:/ – JulCode

+0

Я использовал этот код раньше, и im 1000% уверен, что он работает. – Rami

0

Joda времени

В качестве альтернативы можно использовать Joda-Time библиотеку. Старые классы java.util.Date/.Calendar, как известно, хлопотны и их следует избегать.

Если вы хотите только дату без времени суток, используйте класс LocalDate.

LocalDate today = LocalDate.now(); // Gets today's date using JVM’s current default time zone. You may want to specify a time zone instead, passing a `DateTimeZone` object. 
LocalDate weekLater = today.plusWeeks(1); 

java.time

Java 8, а затем идет в комплекте с новой java.time рамки. Вдохновленный Joda-Time, определяемый JSR 310 и расширенный проектом ThreeTen-Extra. Предназначен для преемника Joda-Time. См. Tutorial.

Технология Java 8 в настоящее время недоступна в Android. Но были некоторые проекты с обратным портом. Я слышал, что back-port может хорошо работать в Android, но я не знаю деталей.

+0

Я бы предпочел решение без внешних библиотек, но если нет другого решения, я попробую это – JulCode

+0

@JulCode Старые классы с датами действительно настолько плохи, что добавление Joda-Time - это первое, что я делаю при настройке любого нового Java-проект. –

Смежные вопросы