私はアンドロイドアプリで任意の2つの時間の差を計算しようとしています。このタスクを達成するために、私はPeriodのgetYears()、getDays()、getHours()、getMinutes()、およびgetSeconds()メソッドと共にJodaTimeとPeriodクラスを使用していました。しかし、それは、それが日付の各要素の間の絶対的な違いと思われるものを与えていることに気付きました。たとえば、日付に私の関数を呼び出す2017-01-29 00:00:00 (yyyy-MM-dd HH:mm:ss)
と2018-01-28 00:00:00
が返されます:JodaTimeの期間が予期しない結果を返す
0 years
2 days
0 hours
0 minutes
0 seconds
それは他のすべてのセクションにゼロと一緒に364 days
を返す必要があるとき。もちろん、それはアンドロイドアプリですので、私はそれらを印刷していません、私は別にディスプレイを処理しています。 LocalDateTimeとDuration.betweenを使用して私のコンピュータでこれを行うことができましたが、ここではこれらのクラスを使用することはできません。私は、私の現在の方法(下記)の修正か、まったく新しいアプローチの提案を探しています。前もって感謝します。 私の現在の機能:
public int[] getDifference(DateTime start, DateTime end){
Period p = new Period(start, end);
int[] differences = new int[5];
differences[0] = p.getYears();
differences[1] = p.getDays();
differences[2] = p.getHours();
differences[3] = p.getMinutes();
differences[4] = p.getSeconds();
return differences;
}
長さはあなたが望むものです - なぜあなたはそれを使用できませんか? – GreyBeardedGeek