秒の値を時間分秒に変換しますか? 質問する

秒の値を時間分秒に変換しますか? 質問する

私は、秒の値 (BigDecimal 変数内) を editText 内の「1 時間 22 分 33 秒」などの文字列に変換しようとしています。

私はこれを試しました:

String sequenceCaptureTime = "";
BigDecimal roundThreeCalc = new BigDecimal("0");
BigDecimal hours = new BigDecimal("0");
BigDecimal myremainder = new BigDecimal("0");
BigDecimal minutes = new BigDecimal("0");
BigDecimal seconds = new BigDecimal("0");
BigDecimal var3600 = new BigDecimal("3600");
BigDecimal var60 = new BigDecimal("60");

(秒単位の値である roundThreeCalc があるので、ここで変換してみます。)

hours = (roundThreeCalc.divide(var3600));
myremainder = (roundThreeCalc.remainder(var3600));
minutes = (myremainder.divide(var60));
seconds = (myremainder.remainder(var60));
sequenceCaptureTime =  hours.toString() + minutes.toString() + seconds.toString();

次に、editText を sequnceCaptureTime String に設定しました。しかし、うまくいきませんでした。毎回アプリが強制終了しました。この件については私の知識の範囲を超えていますので、ご助力いただければ幸いです。

ベストアンサー1

BigDecimal を使用する必要はありますか? 必要がない場合は、秒数に int または long を使用すると、少し簡単になります。

hours = totalSecs / 3600;
minutes = (totalSecs % 3600) / 60;
seconds = totalSecs % 60;

timeString = String.format("%02d:%02d:%02d", hours, minutes, seconds);

ただし、文字列内で 2 桁の値 (またはその他の値) であることを確認するために、それぞれにパディングを追加する必要があるかもしれません。

おすすめ記事