時間差を分単位で計算したいだけです。 だから私はウェブサイトから取得した値を(例えば:でのイベント開始を:20時30とは午前3時30でを終了)時間と分だけです。Java - 時間差に特化したシナリオを計算する
「Duration.between」を使用すると、不正な値が返されます。最初の値が2番目または2番目の値より大きい場合、または2番目の値が深夜を過ぎたときに発生しています。 私は 'ifs'と'elses 'でこれを行うことができると思いますが、もっと優雅な方法で問題を解決するクラスや方法がすでにあると確信していますが、見つけられません。 は、ここに私のコードです:それは第二の値が最初のものよりも大きいときにのみ動作します。この場合は
LocalTime eventStarts = LocalTime.now();
LocalTime eventEnds = LocalTime.now();
eventStarts = eventStarts.withHour(22).withMinute(00);
eventEnds = eventEnds.withHour(03).withMinute(00);
Duration durationBetweenEvents = Duration.between(eventStarts, eventEnds);
System.out.println(durationBetweenEvents.toMinutes());
は私が得る「-1140」
'eventEnds = eventEnds.withHour(03).withMinute(00)'は、同じ日に 'eventStarts'を設定した同じ日の前の時刻に終了時刻を設定します。したがって、あなたの終了時刻はあなたの開始時刻よりも意図的に早くなります。 –