以下のクラスは、一定の定期的な毎日の時間を比較し、今から最も近い時間を返します。(Joda-Time ライブラリを使用)
public class TimeComparitor {
private List<LocalTime> targetTimes;
public TimeComparitor() {
targetTimes = new ArrayList<LocalTime>();
}
public void addTargetTime(LocalTime target) {
targetTimes.add(target);
}
public LocalTime getClosestFutureTarget(DateTime now) {
LocalTime result = null;
long resultOffset = Long.MAX_VALUE;
ArrayList<String> bigger = new ArrayList<String>();
for (LocalTime target : targetTimes) {
DateTime todayTarget = target.toDateTimeToday();
long differenceMillis = todayTarget.getMillis() - now.getMillis();
if (differenceMillis > 0 && differenceMillis < resultOffset) {
resultOffset = differenceMillis;
result = target;
}
}
return result;
}
1.resultOffset
特定の時間と現在の変化を返します. しかしメソッドは最も近い時間しか返しresultOffset
ません. の値をクラス外にするにはどうすればよいですか? メソッドから2つの値を取得するための解決策をすでに読んだことがありますが、コードに適応させることができませんでした。
2.また、今から後のすべての時間の順序付きリストが必要です。これを試しましたが、成功しませんでした:
public LocalTime getClosestFutureTarget(DateTime now) {
.
.
for (LocalTime target : targetTimes) {
.
.
.
}
//My attempt to Get List of Greater Time spots from now
else if (differenceMillis > 0) {
private ArrayList<String> sortBigger(LocalTime bigTarget){
bigger.add(bigTarget.toString());
Collections.sort(bigger);
}
}
}
return result;
}