/** * Retorna la diferencia entre una fecha y otra * * @param dateA * @param dateB * @return */ public static DateUtilData getDateDifference(Date dateA, Date dateB) { Long milliseconds = dateA.getTime() - dateB.getTime(); DateUtilData diff = new DateUtilData(); if (milliseconds > ONE_YEAR) { Long result = milliseconds / ONE_YEAR; milliseconds -= ONE_YEAR * result; diff.setYears(result); } if (milliseconds > ONE_MOUNTH) { Long result = milliseconds / ONE_MOUNTH; milliseconds -= ONE_MOUNTH * result; diff.setMonths(result); } if (milliseconds > ONE_DAY) { Long result = milliseconds / ONE_DAY; milliseconds -= ONE_DAY * result; diff.setDays(result); } if (milliseconds > ONE_HOUR) { Long result = milliseconds / ONE_HOUR; milliseconds -= ONE_HOUR * result; diff.setHours(result); } if (milliseconds > ONE_MINUTE) { Long result = milliseconds / ONE_MINUTE; milliseconds -= ONE_MINUTE * result; diff.setMinutes(result); } if (milliseconds > ONE_SECOND) { Long result = milliseconds / ONE_SECOND; milliseconds -= ONE_SECOND * result; diff.setSeconds(result); } diff.setMilliseconds(milliseconds); return diff; }