Рассчитать количество дней, месяцев и лет между указанными датами. Для Java 7 и без Joda time

Как рассчитать количество дней, месяцев и лет между указанными датами? Проблема в том что это нужно для Java 7 и нельзя использовать Joda time. Нужно учитывать высокосные года.


Ответы (1 шт):

Автор решения: Barmaley
  Calendar calEnd = Calendar.getInstance();
  calEnd.set(2021, 3, 21, 20, 04, 04); //21 апреля 21 года 20:04:04

  Calendar calStart = Calendar.getInstance();
  calStart.set(2001, 4, 1, 9, 00, 00); //1 мая 2001 года, 9 утра
  
  int years = calEnd.get(Calendar.YEAR) - calStart.get(Calendar.YEAR); //разница в годах
  long millis = (calEnd.getTimeInMillis() - calStart.getTimeInMillis()); //разница в миллисекундах
  
  int days = (int )(millis/(24*60*60*1000)); //разница в днях
  int months = years*12 + (calEnd.get(Calendar.MONTH) - calStart.get(Calendar.MONTH)); //по-моему так
  
  System.out.println("years="+years+", days="+days+", months="+months);
→ Ссылка