2012-01-14 96 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的概念。