2016-05-04 11 views
-1

私はspring4 webappで時間と量を計算して計算するロジックが必要ですが、量が挿入されてから間隔がありませんHH:MM形式の3番目の部分のアプリケーションによって取得されます。Java - 保存時間(間隔ではない)

浮動小数点数では分が100ベースで、60ベースでは正しくないので、変更したいフロートの値で完了しました。 私はjava.time.LocalTimeを試しましたが、24時間以上は受け入れられないため動作しません。

私はそれに対処するクリーナーの方法があるかもしれないと思う。

事前

のおかげでは----- EDIT

このWebアプリケーションは、残業を計算します。ユーザーは、従業員が契約時間を費やした時間を入力します。分が正しく計算されていないので、この方法は適切ではない

float hours = //Conversion of the HH:MM string input to HH.MM float within the framework valueToPay = hours * employee.getHourSalary();

:それは以下のように計算変換されたfloatフィールドとしてマッピングされている瞬間

。私は時間全体を分に変換することができましたが、java.time APIが多くを提供しているので、よりクリーンな方法を探しています。

+0

あなたが求めていることは明確ではありません。あなたのコードを掲載して、問題の内容をより詳しく説明してください。例を挙げて、得られた結果とあなたが望むものを分けてください。 – betseyb

+0

申し訳ありませんが、私は質問を編集して、必要に応じて誰かがそれを利用できるようにします。私は尋ねる前に多くを検索しました。しかし、以下のこれらの人はそれを正しく得た。助けてくれてありがとう –

答えて

1

LocalTimeは1日の時間です。

練習が必要な場合はjava.time.Durationです。たとえば、30時間(LocalTimeに収まらない):

+0

あなたが構成例を追加したいのなら、ここでそれはです: 'Duration.ofHours(timeString.split( ':')[0])。plusMinutes(timeString.split( ':')[1] ) '。 – Aaron

0

のJavadocから使用org.joda.time.Duration

ミリ秒単位で時間の長さを指定する不変期間。

期間は、固定されたミリ秒数で定義されます。これらのフィールドは長さが異なる可能性があるため、日や秒などのフィールドの概念はありません。期間を期間に変換して項目値を取得することができます。この変換は、通常、精度の損失を引き起こします。

継続時間はスレッドセーフで不変です。