0

以下のクラスは、一定の定期的な毎日の時間を比較し、今から最も近い時間を返します。(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;
}
4

1 に答える 1