Подтвердить что ты не робот

Вычитание дней в объекте "Календарь"

Возможный дубликат:
Кто-нибудь знает простой способ использования java-календаря, чтобы вычесть X дней на дату?

Мне нужно минус 365 дней в заданную дату (givenDate) -

Calendar calendar = Calendar.getInstance();
calendar.setTime(givenDate);
calendar.add(Calendar.DATE, -365);  

Я прав?

4b9b3361

Ответ 1

Calendar.DAY_OF_YEAR - это правильный способ вычитать дни

Вы также можете вычесть год (принимая во внимание високосные годы), используя

Calendar calendar = Calendar.getInstance();
calendar.setTime(givenDate);
calendar.add(Calendar.YEAR, -1);

Ответ 2

Это правильный способ вычитать дни.

Обратите внимание, что 365 дней не всегда равны одному году из-за високосных дней. calendar.add(Calendar.YEAR, -1) правильно вычитал бы один год.

Вы также можете использовать Joda Time -library вместо java.util.Date и java.util.Calendar. Joda Time - гораздо более удобный API для обработки времени и дат.

Ответ 3

Я не думаю, что это изменится, но я бы использовал Calendar.DAY_OF_YEAR как поле.

Ответ 4

Если вы пытаетесь строго вычесть 365 дней, то да, что бы это сделать. Однако, если вы пытаетесь сделать лет назад, это может не сработать из-за високосных годов.

Ответ 5

Отметьте Veyder-time. Это простой и мощный альтернатива java.util.Calendar и имеет простые методы для добавления и вычитания обоих дней и лет, среди многих других.