Не думаю, что это что-то изменит, но я бы использовал Calendar.DAY_OF_YEAR в качестве поля.
Если вы пытаетесь строго вычесть 365 дней, то да, это сработает. Однако, если вы пытаетесь вычесть годы назад, это может не сработать из-за високосного года.
Calendar.DAY_OF_YEAR
- это правильный способ вычитания дней
Вы также можете вычесть год (с учетом високосного года), используя
Calendar calendar = Calendar.getInstance();
calendar.setTime(givenDate);
calendar.add(Calendar.YEAR, -1);
Это правильный способ вычитания дней.
Обратите внимание, что 365 дней не всегда равны одному году из-за високосных дней. calendar.add (Calendar.YEAR, -1)
правильно вычитает один год.
Вы также можете использовать Joda Time -библиотеку вместо java.util.Date
и java.util.Calendar
. Joda Time - гораздо более удобный API для обработки времени и даты.