Co jest dobrym sposobem, aby, biorąc pod uwagę dwa obiekty Date, porównać różnicę między ich porcją czasu, całkowicie ignorując Rok, Miesiąc i Dzień?Porównaj tylko część czasu z dwóch dat, ignorując datę część
Jest to przeciwieństwo this question.
UPDATE: Oto kod końcowy do wykorzystania w przyszłości:
private long differenceBetween(Date currentTime, Date timeToRun)
{
Calendar currentCal = Calendar.getInstance();
currentCal.setTime(currentTime);
Calendar runCal = Calendar.getInstance();
runCal.setTime(timeToRun);
runCal.set(Calendar.DAY_OF_MONTH, currentCal.get(Calendar.DAY_OF_MONTH));
runCal.set(Calendar.MONTH, currentCal.get(Calendar.MONTH));
runCal.set(Calendar.YEAR, currentCal.get(Calendar.YEAR));
return currentCal.getTimeInMillis() - runCal.getTimeInMillis();
}
Tak, tak. Dlaczego by tego nie robił? – kolrie
Ironia tego rozwiązania polega na tym, że bierzesz dwa obiekty, które są cienkimi opakowaniami wokół typu podstawowego, wywołują masywny i złożony interfejs API, przekształcając obiekty długie w obiekty kalendarza ... i kończą z powrotem w miejscu, w którym " ponownie konwertuje z obiektów kalendarza na długie. – scottb
@scottb - Zobacz [moja odpowiedź] (http://stackoverflow.com/questions/7676149#7676307) poniżej, która nie zmiata z obiektami 'Calendar', ale używa tylko elementów' Date'. –