Я просто потратил впустую, как 30 минут, пытаясь выяснить это сам, но мне нужно было сделать общий откат.
В любом случае, вот мое решение:
public static DateTime rollForwardWith(ReadableInstant now, AbstractPartial lp) {
DateTime dt = lp.toDateTime(now);
while (dt.isBefore(now)) {
dt = dt.withFieldAdded(lp.getFieldTypes()[0].getRangeDurationType(), 1);
}
return dt;
}
Теперь вам просто нужно сделать частичное (то есть LocalDate) для дня недели.
Partial().with(DateTimeFieldType.dayOfWeek(), DateTimeConstants.FRIDAY);
Теперь, какое бы ни было наиболее значимое поле частичного, будет +1, если текущая дата будет после него (сейчас).
То есть, если вы сделаете партию с марта 2012 года, она создаст новую дату и время марта 2013 года или <. </p>