私はいくつかの監視をしたいと思います。たとえば、アプリケーションが1:47に開始すると、1分50秒にすべてを監視してからリセットします。私は現在、この作業を1時間続けていますが、5分ごとにそれを切り捨てる必要があり、私は数学を思いつくのに少し問題があります。私は現在時刻情報の全て次の5秒までのミリ秒
Calendar currentCalendar = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
long currentTimeInMillis = currentCalendar.getTimeInMillis();
int hr = currentCalendar.get(Calendar.HOUR_OF_DAY);
int min = currentCalendar.get(Calendar.MINUTE);
int sec = currentCalendar.get(Calendar.SECOND);
int millis = currentCalendar.get(Calendar.MILLISECOND);
取得
は今、私は時間のために私が働くこれを持って、次の第五の分を見つける必要があります。
millisUntilNextHour = currentTimeInMillis + ((60L - min) * SECONDS_IN_MINUTE * 1000L) + ((60 - sec) * 1000L) + (1000L - millis);
誰も上記と同様の方法を考えて、最も近い5分にミリ秒を得ることができますか?
私はこれを正しい答えとして選びました。なぜなら、それは他のコードと最もよく合っていて、最も速いからです。これでオブジェクトを再作成する必要はありませんが、カレンダーインスタンスを再利用する必要がある場合は必要でした。みんなありがとう。 – Ryan
@ライアン:私の数学をチェックしてテストしてください。私はかなり素早くそれを書いていたので、不注意な間違いがあるかもしれません。しかし、一般的な方法は正しいです。 – tskuzzy
ええと答える前に私はそれを試しました。魅力のように働きます。私はアプリケーションの開始時に最初のパスに必要なのですが、その後は300,000ミリ秒ごとに更新を開始するタイマーがあります。 – Ryan