Разберите только день, поместите его в Calendar
, чтобы вы могли найти день недели, затем создайте другой календарь на основе текущей даты, чтобы вы могли установить день недели. :
currentCalendar.set(Calendar.DAY_OF_WEEK,
parsedCalendar.get(Calendar.DAY_OF_WEEK));
Обратите внимание, что это не обязательно положит его в будущее - оно установит день в течение текущей недели . Поэтому вы можете добавить неделю спустя, если хотите убедиться, что это действительно в будущем:
// Assume we've already done all the parsing
int dayOfWeek = parsedCalendar.get(Calendar.DAY_OF_WEEK);
long now = System.currentTimeMillis();
Calendar currentCalendar = Calendar.getInstance();
currentCalendar.setTimeInMillis(now);
currentCalendar.set(Calendar.DAY_OF_WEEK, dayOfWeek);
if (currentCalendar.getTimeInMillis() < now) {
currentCalendar.add(Calendar.DAY_OF_MONTH, 7);
}
(Вы должны проверить, какое поведение вы хотите, если текущий день недели совпадает с проанализированным днем ...)
Кроме того, я лично рекомендую использовать Joda Time для всей серьезной работы с датой и временем на Java. Это гораздо приятнее API.