На stackoverflow все советуют использовать чудо библиотеку Joda. С применением которой код выглядел бы так:
import java.util.Date;
import org.joda.time.DateTime;
import org.joda.time.Days;
public static int daysBetween(Date startDate, Date endDate)
{
return Days.daysBetween(new DateTime(startDate), new DateTime(endDate)).getDays();
}
Если использовать только стандартные классы, то можно и так, в таком случае будет хотя бы учитываться високосный год:
public static int daysBetween(Date startDate, Date endDate)
{
Calendar c1 = Calendar.getInstance();
c1.setTime(startDate);
Calendar c2 = Calendar.getInstance();
c2.setTime(endDate);
int daysBetween = 0;
while (c1.before(c2))
{
c1.add(Calendar.DAY_OF_MONTH,1);
daysBetween++;
}
return daysBetween;
}
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Объясните, плиз, чем этот код плох.
Если использовать только стандартные классы, то можно и так, в таком случае будет хотя бы учитываться високосный год: