Я думаю, что метод, который вы упомянули для получения разницы, будет работать нормально.Вы просто установите данную дату как один день года, а затем получите текущий день года, используя класс Calendar.
//Set Given Date to what you want it to be, eg 10th March 2006. (Months are indexed from 0-11)
Calendar calendarGivenDate = Calendar.getInstance();
calendarGivenDate.set(Calendar.DAY_OF_MONTH, 10);
calendarGivenDate.set(Calendar.MONTH_OF_YEAR, 2);
calendarGivenDate.set(Calendar.YEAR, 2006);
//Receive the day of the year for what you previously set
int givenDateDayOfYear = calendarGivenDate.get(Calendar.DAY_OF_YEAR);
//Receive current day of year
Calendar calendarCurrentDate = Calendar.getInstance();
int currentDateDayOfYear = calendarCurrentDate.get(Calendar.DAY_OF_YEAR);
//Get difference in number of years
int currentYear = calendarCurrentDate.get(Calendar.YEAR);
int givenYear = calendarGivenDate.get(Calendar.YEAR);
int yearDifference = currentYear - givenYear;
//Find difference, divide by 7 (Round value down to get the difference in whole weeks)
double differenceDays = currentDateDayOfYear - givenDateDayOfYear + (365*yearDifference);
double differenceWeeks = Math.floor(differenceDays / 7);
Не уверен, что моя математика в конце полностью правильная, потому что я просто пытаюсь визуализировать ее в своей голове, но попробовать?Надеюсь, это помогло.