3

私は2回の差を計算していますが、別々の方程式を使用して時間と分の差を取得できます。一度に時間と分を取得できる単一の方程式はありますか。次のように使用しています。

ここで、diffは2つの時間値の差です

long diffHours1 = diff / (60 * 60 * 1000);
long min=diff/(60*1000);
4

4 に答える 4

5

ここで役立つかどうかはわかりませんが、Joda TimeにはPeriodを使用したもう少し詳細な解決策があるようです。

Period p = new Period(startDate, endDate)
int minutes = p.getMinutes(); //returns the left over minutes part
int seconds = p.getSeconds(); //returns the seconds part

この特定のケースでは、あなたが持っているもの以外に何かが必要かどうかはわかりません.aix'sに同意します

于 2012-05-07T07:29:12.123 に答える
1

一度に数時間と数分を取得できる単一の方程式はありますか

いいえ、簡単ではありません。Java式の結果は1つだけです。いくつかのものを返すことは不可能ではありませんが、追加の機械(ラッパークラス、タプルなど)が必要になります。これにより、現在のコードよりもはるかに複雑なコードになります。

物事を少し単純化するためにできることは、最初に分を計算し、次に分に基づいて時間を計算することです。

long diffMinutes = diff / (60*1000);
long diffHours = diffMinutes / 60;
于 2012-05-07T07:20:56.027 に答える
1

はいあります:

String oneGo = (diff / (60 * 60 * 1000)) + " " + (diff / (60 * 1000));

:-)

于 2012-05-07T07:26:03.530 に答える
1

2 つの方程式はそれほど悪くはありませんが (実際には、より多くの行を使用すると読みやすくなります)、順序を変更したり、方程式を修正したり、一部の結果をキャッシュしたりすることはできます。

diff = //time difference in milliseconds
long diffInMinutes = diff / (60 * 1000);    

//get the number of hours, e.g. 140 / 60 = 2
long hours = diffInMinutes  / 60;

//get the left over minutes, e.g. 140 % 60 = 20
long minutes = diffInMinutes  % 60;   

1 つの方程式が使いやすいという理由である場合は、Joda Timeなどの代替ライブラリを使用してみてください。

于 2012-05-07T07:26:29.913 に答える