Java - 日历/日期差异 - 查找精确到秒的差异

标签 java date calendar gregorian-calendar java.util.date

尝试用 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

我认为,如果它使用毫秒,那么它将是某种小数。我确信我错过了一些简单的东西,但就是找不到它!

提前致谢!

最佳答案

您正在将一个整数除以另一个整数。在进行除法之前,您需要将它们转换为 double 。像这样

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

关于Java - 日历/日期差异 - 查找精确到秒的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14869742/

相关文章:

java - 类(class)考勤系统的打印输出数组

java - 安卓房间 "bad RuntimeInvisibleParameterAnnotations attribute"

javascript - Appium selenium 字段中的明文

ios - 如何在swift3中检查当前字符串是24小时格式时间还是12小时格式时间?

java - jtable 上的复选框并在 java swing 中获取相应行的值

javascript - 如何将日期从 2018-04-29 格式转换为 29 Apr,2018 格式?

java - 在 Java 中序列化日期

java - ical解析器android

JQuery Calendar(http ://arshaw. com/fullcalendar/) 如何更改选定的单元格背景颜色

Drupal 和 Exchange 服务器日历