0

Java で小さなカウントダウン プログラムを作成しようとしています。

アプリの日付部分の違いを見つけることに取り組んでいますが、何らかの理由で日しか取得していません。

日、時間、分、秒が必要です。計算が偶数の整数に丸められている理由がわかりません...この例では163で、163.xxではありませんか?

これが私のコードです:

import java.util.Date;
import java.util.Calendar;
import java.util.GregorianCalendar;

public class CalcData {

    Calendar cal1;
    Date today;

    public CalcData() {

        cal1 = new GregorianCalendar();
        today = new GregorianCalendar().getTime();

    }

    public String calcDiff() {

        cal1.set(2013, 6, 27, 7, 15, 0);
        double theDays = calcDays(cal1.getTime(), today);
        return "" + theDays;

    }

    public double calcDays(Date d1, Date d2) {

        double theCalcDays = (double) ((d1.getTime() - d2.getTime()) / (1000 * 60 * 60 * 24));
        return theCalcDays;

    }
}

私が言ったように、これを実行すると、結果が得られます: 163.0

ミリ秒を使用している場合、ある種の小数になると思います。私が見逃しているのは単純なものだと確信していますが、それを見つけることができません!

前もって感謝します!

4

1 に答える 1

1

整数を別の整数で割っています。除算を行う前に、それらを double にキャストする必要があります。このような

double theCalcDays = ((double) (d1.getTime() - d2.getTime())) / (1000 * 60 * 60 * 24);
于 2013-02-14T07:31:00.187 に答える