0
试图在Java中制作一个倒计时程序。Java - 日历/日期差异 - 查找差异降至秒
我正在寻找应用程序的日期部分之间的差异,并且出于某种原因,我只能获得这些日子。
我想要几天,几小时,几分钟和几秒钟。我不知道为什么我的计算只是四舍五入到一个偶数...在这个例子中,而不是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
我会想,如果是使用毫秒,这将是一些小数点。我相信这是简单的,我失踪了,但找不到它!
在此先感谢!
果然!非常感谢。很高兴这是一个简单的错误。 – cbaze19 2013-02-14 07:39:47
如果两个日期来自不同的夏令时节省区,则这将不起作用。在这种情况下,时差为X天-1和23小时:) – Antoniossss 2014-05-06 06:44:19
事实上,在有夏令时的地方,每年有一天是23小时,而一天是25小时。但是,日期对象内部是UTC中的一个值。 UTC只有24小时的日子,所以它工作。考虑时区时,您总会遇到此问题:两小时的电话会议可能会在同一个时区的同一天开始和结束,并且可能会在不同时区的不同时间开始和结束。他们不同意天数!这与持续时间无关,而是根据该时区来解释时间。 – AgilePro 2014-05-07 00:06:16