Вот метод грубой силы (игнорируя рабочие дни и т. Д.). Обратите внимание, что вы не можете просто повторно добавить период, как (30 января + 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);
}
}
}
Возможно, что есть меньше способов сделать это грубо, особенно если вам не нужно брать произвольный период, но это, вероятно, самое простое решение.