1

我正在尝试以十进制表示法将两个日期的差异转换为天,例如,在我这样做的那一刻,

Date mostRecentDate = dates[0];
Date previousDate = dates[1];

long mostRecentTime = mostRecentDate.getTime();
long previousTime = previousDate.getTime(); 

long diffInDays = (mostRecentTime - previousTime ) / (1000 * 60 * 60 * 24);

这总是会导致整个天数,但我希望如果两个日期的差异是两天半,我可以返回 2.5,或者如果差异是 6 小时,我可以返回 0.25 等等。

谢谢 !

4

2 回答 2

3

DataType 是问题。您可以使用双倍。

            Date[] dates = new Date[2];
        dates[1] = new Date(System.currentTimeMillis()-12*1000*60*60);
        dates[0] = new Date(System.currentTimeMillis());
        Date mostRecentDate = dates[0];
        Date previousDate = dates[1];

        double mostRecentTime = mostRecentDate.getTime();
        double previousTime = previousDate.getTime(); 

        double diffInDays = (mostRecentTime - previousTime ) / (1000 * 60 * 60 * 24);
于 2012-09-17T10:17:18.990 回答
2

而不是 long 你需要使用 double 来获得实数的差异。

double diffInDays = (mostRecentTime - previousTime ) / (1000 * 60 * 60 * 24);

long 类型是整数,因为您将值除以任何答案,它将强制转换为整数并删除小数点

于 2012-09-17T10:16:26.337 回答