2012-02-14 7 views
1

私は、HTML INPUT TAGから取得した2つの日付の差を計算するために次のコードを使用しています。javaを使用して2日間の日数をカウントするHTML入力タグからの日付

とjava.lang.ClassCastException:java.util.Dateは、java.util.Calendarのにキャストすることはできません、それは例外を生成したメソッド呼び出しで次に

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; 
    } 

渡すパラメータの間に、サーブレットの方法、

どうすればこの問題を解決できますか?

答えて

0

あなたは、次のコードを使用することができます。

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

これは、ミリ秒単位の違いを返します。

3

あなたのアルゴリズムは精巧さに欠けています。これを試してみてください:

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

いつものように、日付と時刻。考慮するhttp://joda.sourceforge.net/ –

0

ここからdaysBetween()を呼び出している場所を確認してください。あなたはjava.util.Dateの代わりにjava.util.Calendarの代わりに渡していますか?

関連する問題