2012-05-17 15 views
5

今後の日時、日、時間、分、秒の違いをアンドロイドで取得する必要があります。現在の日付と時刻が17/05/2012 03:53:00で、将来の日付が18/05/2012 04:55:00の場合と同様です。私は時間=一日の残りとの違いを表示する必要がAndroidで日時、時、分、秒で日付と時刻の差を取得する

:1は、時間:1、および分2

ヘルプの任意の種類が理解されるであろう。事前に多くの感謝。

よろしく、 Munazza K

答えて

8

あなたは両方の日付を減算し、差分を計算することができます。このような種類:

long difference = calendar.getTimeInMillis()-currentTime; 

    long x = difference/1000; 
    seconds = x % 60; 
    x /= 60; 
    minutes = x % 60; 
    x /= 60; 
    hours = x % 24; 
    x /= 24; 
    days = x; 

あなたはすでに計算した時間を差し引くことができます。あなたは時間を得る、残りを得る、分をするなど

+0

は、これは単に異なる単位での全体の持続時間の長さを与える、と残りの日数、時間、分のではない内訳OPは意味する。 – santafebound

0

Dateクラスを使用してください。

getTime()メソッドでは、2つの日付の時間をミリ秒単位で指定できます。 次に、両方の日付間の減算の結果をミリ秒単位で表す別のDateオブジェクトを作成できます。 そして、最初のDateからの日数、時間および分があります。

16

あなたはそれが2つの日付の差を計算するための正しい方法を説明してます。また、便利なこのポストを見つけることができ、このよう

c_date=18/05/2012 04:55:00. and saved_date=17/05/2012 03:53:00 

    long diffInMillisec = c_date.getTime() -saved_date.getTime(); 
    long diffInSec = TimeUnit.MILLISECONDS.toSeconds(diffInMillisec); 
    seconds = diffInSec % 60; 
    diffInSec/= 60; 
    minutes =diffInSec % 60; 
    diffInSec /= 60; 
    hours = diffInSec % 24; 
    diffInSec /= 24; 
    days = diffInSec;` 
1

私は、最近、同じことを実現し、私が使用JodaTime。ここからあなたのAndroidアプリでそれをjarファイルをダウンロードして含めることができます。http://joda-time.sourceforge.net/

//Create your taget date  
Calendar cal = Calendar.getInstance(); 
    cal.clear(); 
    cal.set(Calendar.YEAR, 2012); 
    cal.set(Calendar.MONTH, Calendar.JULY); 
    cal.set(Calendar.DATE, 15); 
    cal.set(Calendar.HOUR_OF_DAY, 8); 
    Date startDate = cal.getTime(); 

//Use JodaTime to calculate difference 
    Period period = getTimePassedSince(startDate); 

//Extract values and display 
    daysTV.setText("" + Math.abs(period.getDays())); 
    hoursTV.setText("" + Math.abs(period.getHours())); 
    minsTV.setText("" + Math.abs(period.getMinutes())); 
    secsTV.setText("" + Math.abs(period.getSeconds())); 

    ... 
    public static Period getTimePassedSince(Date initialTimestamp){ 
      DateTime initDT = new DateTime(initialTimestamp.getTime()); 
      DateTime now = new DateTime(); 
      Period p = new Period(initDT, now, PeriodType.dayTime()).normalizedStandard(PeriodType.dayTime()); 
      return p; 
     } 
関連する問題