2012-01-14 133 views
2

我會實現一種方法,它接收輸入兩個對象日期並計算這兩者之間經過的時間。我怎樣才能實現這樣的事情?一些想法?計算從開始日期到完成日期的時間

+0

嘗試[Joda-Time](http://joda-time.sourceforge.net/) – 2012-01-14 21:09:46

回答

2

您希望得到答案的單位是?這裏有一個可能性:

public static String timeBetween(Date start, Date end) { 
    long timeDiff = Math.abs(end.getTime() - start.getTime()); 
    String diff = String.format("in days: %d | in hours: %d | in minutes: %d", 
     TimeUnit.MILLISECONDS.toDays(timeDiff), 
     TimeUnit.MILLISECONDS.toHours(timeDiff), 
     TimeUnit.MILLISECONDS.toMinutes(timeDiff)); 
    return diff; 
} 
+0

小心絕對。你可能會遇到麻煩! – MozenRath 2012-01-15 21:05:11

1
public long getDifference(Date strt, Date end){ 
    long s = strt.getTime(); 
    long e = end.getTime(); 
    return e-s; 

} 

返回他們

1

一種非常原始的方法是採取以毫秒爲單位每個日期對象的時間和減去它們來計算持續時間之間的毫秒數。使用該持續時間,您可以計算持續時間中的秒數,分鐘數,天數等。

這是一種粗略的方法,因爲它可能不是100%準確的所有情況。例如,夏令時,閏年和閏秒都會使計算複雜化。

如果您可以接受這些不準確性,那麼粗略方法可能就足夠了。如果您需要更高的準確性,建議使用第三方庫。 Joda-Time提供了能夠計算兩個日期實例之間的秒數,分鐘數,天數等的Period的概念。