Androidでは、現在の日付と将来の日付の差を日、時間、分、秒で取得する必要があります。現在の日時が17/05/201203:53:00で、将来の日付が18/05/201204:55:00である場合のように。
差を残り時間=日:1、時間:1、分2として表示する必要があります。
どんな種類の助けもいただければ幸いです。よろしくお願いします。
よろしく、ムナザK
Androidでは、現在の日付と将来の日付の差を日、時間、分、秒で取得する必要があります。現在の日時が17/05/201203:53:00で、将来の日付が18/05/201204:55:00である場合のように。
差を残り時間=日:1、時間:1、分2として表示する必要があります。
どんな種類の助けもいただければ幸いです。よろしくお願いします。
よろしく、ムナザK
あなたはこのようにすることができます
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;`
両方の日付を減算して、差を計算できます。このようなちょっと:
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;
計算済みの時間を差し引くことができます。時間を取得し、残りを取得し、分を実行します。
最近同じことを実装し、JodaTimeを使用しました。jarをダウンロードして、Androidアプリに含めることができます: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;
}
これらすべての回答から、これが私が思いついたものです
fun hoursBetween(date: Date): Long = TimeUnit.MILLISECONDS.toHours(date.time - Date().time)
fun minutesBetween(date: Date): Long = TimeUnit.MILLISECONDS.toMinutes(date.time - Date().time) % 60
fun secondsBetween(date: Date): Long = TimeUnit.MILLISECONDS.toSeconds(date.time - Date().time) % 60
それが役に立てば幸い ;)
Date
クラスを使用します。
メソッドを使用getTime()
すると、2 つの日付の時間をミリ秒単位で取得できます。Date
次に、両方の日付間の減算の結果のミリ秒数で別のオブジェクトを作成できます。そして、最初のDate
.