1

アプリケーションに「今日の質問」機能を実装したいと考えています。ユーザーがその機能を 1 日に 1 回使用すると、日が変わるまでアクセスできなくなります。機能が最初にいつアクセスするかを取得することはできますが、次回のためにこの日時を確認するにはどうすればよいですか。

日付が変更されたかどうかを取得するにはどうすればよいですか。

前もって感謝します。

4

4 に答える 4

2

isToday(long when)タイムスタンプ、共有設定、および次の場所にあるメソッドの使用を組み合わせて使用​​できます。android.text.format.DateUtils

コード例:

SharedPreferences userDetails = context.getSharedPreferences("userdetails", MODE_PRIVATE);
long sharedPreferenceTimestamp= userDetails.getLong("lastquestiontime", 0); // 0: 1/1/1970
if(!DateUtils.isToday(sharedPreferenceTimestamp)) {
   // --> show the Question HERE! <--

   // update the value of last question show!
   SharedPreferences.Editor editor = userDetails.edit();
   editor.putLong("lastquestiontime", System.currentTimeMillis()); // value to store
   editor.commit();
}
于 2013-02-24T10:36:11.803 に答える
1

日付の計算にはUNIX時間を使用することを好みます。UNIX 時間は、1970 年 1 月 1 日午前 0 時 GMT からのミリ秒数です。この数値は、Date.getTime() メソッドを呼び出すことで取得できます。

経過日数が必要なため、この数値を 24*60*60*1000 で割る必要があります。その後、他に何もする必要はありません。2 つの数値を比較するだけです。数字が同じなら日は変わりません。

于 2013-02-24T10:28:07.220 に答える
0

共有設定を使用して、ユーザー名と日付をキーとして追加できませんか。次にユーザー名を取得するときに、そのユーザーの日付を取得して比較できます。

于 2013-02-24T08:50:41.433 に答える