2015-09-22 2 views
3

Может ли кто-нибудь помочь мне рассчитать Date Разница с точки зрения количества дней в эффективном режиме?Java Разница в датах

Date nextCollectionDate = dispenseNormal.getDispensing().getNextCollectionDate(); 
Date currentDate = new Date(); 
int daysDiff = currentDate - nextCollectionDate; 
+1

Что именно вы ожидаете? Что вы получаете? В чем проблема? –

+0

Я хочу рассчитать разницу между двумя датами в днях. –

+0

Использовать Java API Time API, JodaTime или даже Календарь – MadProgrammer

ответ

5
//diff in msec 
long diff = currentDate.getTime() - nextCollectionDate.getTime(); 

//diff in days 
long days = diff/(24 * 60 * 60 * 1000); 
3

Вы можете использовать JodaTime, который является очень полезным API для этих сценариев

int days = Days.daysBetween(date1, date2).getDays(); 

или же вы можете создать свой собственный метод и получить разницу

public long getDays(Date d1, Date d2) 
{ 
    long l = d2.getTime() - d1.getTime(); 
    return TimeUnit.DAYS.convert(l, TimeUnit.MILLISECONDS); 
} 
1

Вы можно использовать joda api

Ниже код должен решить ваш запрос

Date nextCollectionDate = dispenseNormal.getDispensing().getNextCollectionDate(); 
    Date currentDate = new Date(); 
    Days d = Days.daysBetween(new DateTime(nextCollectionDate), new DateTime(currentDate)) 

    int daysDiff = d.getDays(); 
2

Я хотел бы предложить вам использовать LocalDate в Java 8:

LocalDate startDate = LocalDate.now().minusDays(1); 
LocalDate endDate = LocalDate.now(); 
long days = Period.between(startDate, endDate).getDays(); 
System.out.println("No of days: " + days); 

, который, как ожидается, напечатает:

No of days: 1 
Смежные вопросы