私は、秒の値 (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 桁の値 (またはその他の値) であることを確認するために、それぞれにパディングを追加する必要があるかもしれません。