Javaで時間計測とかに関するメモ。
現在の時間(プログラム開始からの時間?)を取得する
System.currentTimeMillis()メソッドを使ってみる。
まず、long型の変数を宣言。
long time1, time2, result;
そして行わせたい処理の前に
time1 = System.currentTimeMillis();
を入れ、処理の後に
time 2 = System.currentTimeMillis();
result = time2 - time1;
後は結果の表示だけ。
taOutput.append("time : " + (int)(result/60000) + "m " +
(int)((result%60000)/1000) + "s " + ((result%60000)%1000));
とりあえずこんな感じでできた。(taOutputはJTextArea)
まず結果を60000で割ってintにキャスト(少数以下切捨て)で分を計算。
60000の剰余を求めて1000で割ってintにキャストで秒を計算。
60000の剰余の更に1000の剰余を求めて、秒以下を出す、と。
経過時間を表示させるには、スレッドのループの中で
lblTime.setText((int)((System.currentTimeMillis()-time1)/60000) + "m " +
(int)(((System.currentTimeMillis()-time1)%60000)/1000) + " s");
これでできた。(lblTimeはJLabel)
説明は上のとあまり変わらないので省略。
重くなるかなーとか思ってたけど、
意外とこの処理を入れることによる影響はほとんどなかった。
でも何か他にもっと楽な方法がありそう。
とりあえず見つかるまではこの方法で。