これは強引な方法です(営業日などを無視します)。(1 月 30 日 + 1 か月) + 1 か月 != 1 月 30 日 + 2 か月のように、期間を繰り返し追加することはできないことに注意してください。
import org.joda.time.LocalDate;
import org.joda.time.Period;
public class Test {
public static void main(String[] args) {
LocalDate start = new LocalDate(2009, 2, 10);
LocalDate now = new LocalDate(2009, 11, 13);
System.out.println(next(start, Period.months(1), now));
}
public static LocalDate next(LocalDate start, Period period, LocalDate now) {
Period current = Period.ZERO;
while (true) {
LocalDate candidate = start.plus(current);
if (candidate.isAfter(now)) {
return candidate;
}
current = current.plus(period);
}
}
}
特に完全に恣意的な期間を取る必要がない場合は、力ずくでそれを行う方法が少ない可能性がありますが、これがおそらく最も簡単な解決策です。