2016-07-22 18 views
0

私は典型的な目覚まし時計アプリのようにユーザーが指定したアラームのリストを持っている:目覚まし時計アプリの時間を計算する方法は?

  • 曜日
  • 時間-の日の
  • 分-の時間

私は、このように指定された時間のリストを調べ、現在の時刻と比較して次に来るアラームがどれであるかを判断する関数を手書きしています。私はAlarmManagerを使用して、次にアラームが来たときに次回のアラームをスケジュールします。 before()メソッドとafter()メソッドを持っているので、Date、Time、およびGregorianCalendarクラスは考慮しましたが、それらはすべて自分のパラメータを指定して構築するのに苦労しています。すべての日付/時間の減算を自分で書くよりも良い方法はありますか?

答えて

0

日付の作成を補助するためにCalendarクラスを使用できます。次に、getDateメソッドを使用すると、ミリ秒が得られ、最も近いアラームを見つけるためにそれらを処理できます。ここのカレンダーの使用例を確認してくださいhttp://www.tutorialspoint.com/java/util/calendar_add.htm

+0

こんにちは。開発者が目覚まし時計アプリケーションで行う必要があるような[未来的な]カレンダーオブジェクトに曜日、時間帯、分単位を変換する問題を解決する方法はありますか? –

+0

こんにちは、[Androidデベロッパーサイト](https://developer.android.com/reference/java/util/Calendar.html)のドキュメントから、参考になると思われる多くの定数があります。 'DAY_OF_WEEK'、' HOUR_OF_DAY'などの定数を使って、 'add()'、 'set()'、 'roll()'メソッドをチェックしてください。これらの機能を使って将来の日付を作成し、 'System.currentTimeMillis()'を引くことでその日までの残り時間を得ることができます。それが役に立てば幸い。 – solver

0

私はyoutubeで見つけたビデオレッスンです。 create digital clock

while(time == 0){ 
         Calendar calen = new GregorianCalendar(); 

         int hr = calen.get(Calendar.HOUR); 
         int min = calen.get(Calendar.MINUTE); 
         int sec = calen.get(Calendar.SECOND); 
         int AP = calen.get(Calendar.AM_PM); 
         String d_n = ""; 

         if(AP == 1){ 
          d_n = "PM"; 
         }else{ 
          d_n = "AM"; 
         } 
} 
+0

ここにはいくつかの欠点があります。 1)ロンドンのGreenwhichでカレンダーに時間を与える。ユーザーは、他の時間帯で最も可能性の高い時刻を指定しました。したがって、ローカル/システム時刻を返すので、Dateクラスを使用する方が好きです。 2)問題の要点は、「どのように曜日、時間帯、分単位のアラームをCalenderやDateオブジェクトに変換するのですか」ということです。論理を書くのに多くのコードと数時間を要した。よりよい解決策が一般的な問題であるように思えます。 –

関連する問題