2016-05-05 2 views
-2

У меня есть 2 объекта календаря для текущей даты и даты рождения. Мне нужно вычесть дату рождения с текущей даты и вернуть разницу в годах (усеченный Int - это все, что мне нужно).Вычитание дат с использованием Java-календаря

Каков самый простой способ сделать это?

+1

Просто вычтите два года ... достаточно просто. Посмотрите на класс календаря https://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html 'СОВЕТ: Начиная с версии JDK версии 1.1, замененной Calendar.get (Calendar.YEAR) - 1900' – 3kings

+0

@ Но с вашим примером я бы только вычитал из года, а не всю дату. –

+0

Вы сказали, что вам нужна разница в годах .... – 3kings

ответ

0

Вы можете получить время EPOCH (милисекунд с 01.01.1900), вычесть оба значения и разделить его на 1000(miliseconds)/60(seconds)/60(minutes)/24(hours)/365(days). Это даст вам приблизительный результат (в годах) из-за игнорирования високосных лет.

Чтобы получить эпоху, используйте Date#getTime();

+0

Этот подход будет игнорировать гораздо больше, чем високосные годы. Он игнорировал бы переход на летнее время и все другие аномалии, зафиксированные в определении часового пояса. –

+0

Is not EPOCH в UTC?. – Antoniossss