Подсчет количества дней между двумя днями с использованием Java, даты из тегов ввода HTML - PullRequest
1 голос
/ 14 февраля 2012

Я использовал следующий код для вычисления разницы между двумя датами, которые были взяты из тега HTML INPUT, и этот метод называется методом в методе обслуживания сервлета:

public static long daysBetween (Calendar startDate, Calendar endDate) {  
      Calendar date = (Calendar) startDate.clone(); 

      long daysBetween = 0;  
      while (date.before(endDate)) {  
        date.add(Calendar.DAY_OF_MONTH, 1);
        daysBetween++;  
      }  
      return daysBetween;  
    }

Тогда ввызывающий метод во время передачи параметров вызвал исключение:

java.lang.ClassCastException: java.util.Date нельзя преобразовать в java.util.Calendar

Howя могу это исправить?

Ответы [ 3 ]

3 голосов
/ 14 февраля 2012

Вашему алгоритму не хватает изящества.Попробуйте это:

import java.util.Calendar;
import java.util.concurrent.TimeUnit;

public static long daysBetween (Calendar startDate, Calendar endDate) {
    return TimeUnit.MILLISECONDS.toDays(
        endDate.getTimeInMillis() - startDate.getTimeInMillis()); 
}
0 голосов
/ 14 февраля 2012

Проверьте, откуда вы звоните daysBetween (). Вы передаете java.util.Date вместо java.util.Calendar?

0 голосов
/ 14 февраля 2012

Вы можете просто использовать следующий код:

long difference = endDate.getTime().getTime() - startDate.getTime().getTime();

Это вернет разницу в миллисекундах.

...