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