2012-01-14 18 views
2

入力で2つのオブジェクト日付を受け取り、これらの2つの間に渡された時間を計算するメソッドを実装します。どのように私はそれのようなものを実装できますか?いくつかのアイデア?開始日から終了日までの時間を計算する

+0

[Joda-Time](http://joda-time.sourceforge.net/) –

答えて

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

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

} 

は非常に粗製の方法は、ミリ秒単位で各日付オブジェクトの時間がかかると持続時間を計算するためにそれらを差し引くことであろう彼ら

1

間のミリ秒数を返します。ここでは一つの可能​​性です。その期間では、期間内の秒、分、日などの数を計算することができます。

これはすべての状況で100%正確でない可能性があるため、これは粗い方法です。たとえば、夏時間、うるう年、およびうるう秒は、すべてこの計算を複雑にします。

これらの不正確さを受け入れることができれば、粗い方法で十分でしょう。正確性が必要な場合は、サードパーティのライブラリを使用することをお勧めします。 Joda-Timeは、2つの日付インスタンス間の秒、分、日などの数を計算することができるPeriodの概念を提供します。

関連する問題