2016-12-06 21 views
-1

有効期限の差を計算する必要があります。Androidエポックタイムと今日の日付を比較して差分を出力する

私は、このエポックの時間を取得します:

1481410800(06〜12月 - 2016(14時42分))

今、私は有効期限までの日数を計算したい(1481410800)

Calendar now = Calendar.getInstance(); 
     SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy (HH:mm)", Locale.getDefault()); 


//Expiry Date 
     long unixSecondsExpiry = 1481410800; //unixSeconds 
     Date expiryDate = new Date(unixSecondsExpiry*1000L); 



     long currentDate = now.get(Calendar.SECOND); 

     long diff = unixSecondsExpiry - currentDate; 
     long days = diff/(24l * 60l * 60l * 1000l); 




     String formattedExpiryDate = sdf.format(expiryDate); 
     String formattedDateNow = sdf.format(new Date()); 

     Log.w("RUNTEST", "formattedDateNow: " + formattedDateNow); 
     Log.w("RUNTEST", "formattedExpiryDate: " + formattedExpiryDate); 
     Log.w("RUNTEST", "days: " + days); 

私は17日間は継続しますが、有効期限までは5日間でなければなりません。

RUNTEST:formattedDateNow:06日 - 2016(14時42分)

RUNTEST:formattedExpiryDate:11日 - 2016(7:00)

RUNTEST:日:17

+0

また、http://stackoverflow.com/q/6218928の複製。投稿する前にStack Overflowを検索してください。 –

答えて

0

ここでは、new Date()

String formattedDateNow = sdf.format(new Date()); 

が、計算を使用していますなぜだけではなく、使用

long currentDate = now.get(Calendar.SECOND); 

を使用している

long currentDate = new Date().getTime(); 

編集

getティンカレンダーからSECONDSは、ちょうど現在の秒カウンタ

フィールドの数のためになっていますgetとsetは分内の秒を示します。 など、10:04:15.250 PMのSECONDは15です。

関連する問題