ソフトウェア開発したい日記

「面白い!」と思った頭の体操や、数学の問題を載せていきます
その他ロードバイクででかけた先の写真や、ソフト開発のメモ等

Javaで時間計測とか

2010年08月18日 12時10分32秒 | ソフト開発日記
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)
説明は上のとあまり変わらないので省略。
重くなるかなーとか思ってたけど、
意外とこの処理を入れることによる影響はほとんどなかった。
でも何か他にもっと楽な方法がありそう。

とりあえず見つかるまではこの方法で。