Вы можете просто найти день недели переданной даты, вычесть ее из целевого дня недели и, наконец, добавить этот результат к переданной дате. Нет необходимости циклически перебирать даты. Так было бы:
daysToAdd = (targetDayOfWeek - currentDayDayOfWeek)% 7
Причиной моделирования вычитания является обработка случаев, когда целевой день меньше текущего дня (это суббота, и вы ищете вторник, например).