外部ライブラリを使用せずに、HH:mm:ss
の形式でJLabelの表示値を使用したいと考えています。longをHH:mm:ssに変換してラベルに表示する最も効率的な方法は何ですか?
Seconds: Output:
--------------------------------------------------
long seconds = 0 00:00:00
long seconds = 5 00:00:05
long seconds = 500 00:08:20
long seconds = 5000 01:23:20
Note: the seconds value is of type long
私は、通常、1つは、次の操作を行うだけだろうと承知している:
だから例えば、数秒で次の入力し、所望の出力は以下の通りです(ラベルは毎秒更新されます)希望の番号を取得するための変換:
long s = 5000; //total seconds
long hrs = (s/3600) //hours
long mins = ((s%3600)/60) //minutes
long secs = (s%60) //seconds
はしかし、これは値に小数を残します。おそらく、私に不必要な小数を投げることを可能にする何らかの整形があります。
私が遭遇したオプションはString.format()
,SimpleDateFormat()
であり、文字列を自分自身で連結しています。
私はこのJLabelを毎秒更新していますが、それ以上の場合は5-6日に相当することがあります。
私は、私よりも多くの経験があり、この問題に取り組む最も効率的な方法を知っている人を探しています。
再: "時々それは5-6日の同等に数えることができます":00::その場合には、それが戻っ '00にラップアラウンドう00、何日かの日数を表示したいですか? – ruakh
Re: "しかし、これは値に小数点以下の桁を残します":あなたが意味することはわかりません。 Javaでは、 's'が' long'の場合、 's/3600'はlongです。 [整数除算](http://mathworld.wolfram.com/IntegerDivision.html)を実行するので、小数点は生成されません。 – ruakh
@ruakh私は日カテゴリを追加する必要があるかもしれませんが、まだ遭遇していません。私は将来私がそれに遭遇することを知っています。今のところ、私はちょうど少なくとも分、秒、秒を適切に表示できるようにしたかったのです。長い間、私はJavaではなくGroovyで簡単にテストしましたが、おそらくそれが小数点を示した理由を知らないで型を変換したでしょう。 (私があなたがそれを指摘するまで気づいていなかった) – StartingGroovy