2016-09-04 3 views
0

Задача: Получение разницы в календарных днях между двумя датами. Например, 6/28/1996 23:59 - разница в день с 29.06.1996 12:00.Получение простой разницы в календарных днях

Исследования: Я провел кучу исследований в Интернете, и все, кажется, дают только разницу в миллисекундах, что дает вам истинную разницу во времени, но не в календарные дни.

Текущее решение

(int) ((new java.sql.Date(System.currentTimeMillis()).getTime()/day_conversion)) - (int) (rs.getDate("attempt_time").getTime()/day_conversion) > 0 

Я сделал ИНТ приведение к времени даты преобразуются в дни (тем самым сбросив любые десятичные) как к текущему времени и времени записи и взял разницу. Это оставило меня с фактическим преобразованием в календарные дни; однако мне было интересно, есть ли только один письменный метод, который делает это для меня уже.

+1

Я не уверен, что это имеет отношение к MySQL – Strawberry

ответ

5

Поскольку Java 8 существует java.time API, заменяющий java.util.Date и связанные с ним классы и обеспечивает очень чистый способ решения вашей проблемы:

LocalDateTime date1 = LocalDateTime.of(1996, 6, 28, 23, 59); 
LocalDateTime date2 = LocalDateTime.of(1996, 6, 29, 12, 59); 

Period difference = Period.between(date1.toLocalDate(), date2.toLocalDate()); 
System.out.println(difference.getDays()); 
0

Это еще один способ, чтобы вычислить разницу между годами. Вы можете добавить остальную дату очень легко.

 Calendar c = Calendar.getInstance(); 
     int y = c.get(Calendar.YEAR); 
     Calendar c2 = Calendar.getInstance(); 
     c2.set(Calendar.YEAR, 2013); 
     int com = c.get(Calendar.YEAR) - c2.get(Calendar.YEAR); 
     System.out.println(com);