Я сильно подозреваю, что вы не принимаете во внимание тот факт, что месяц основан на 0. Итак, это:
startDate.set(2010, 8, 28);
устанавливает его на сентябрь 28th 2010. Вы еще не сказали, что ожидаете, но я подозреваю, что вы хотели август (в java.util.Calendar месяц 7). *
Я подозреваю, что это проблема, учитывая, что Октябрь 2-е и 3-е - суббота и воскресенье.
Могу ли я настоятельно рекомендовать вам использовать Joda Time в качестве API даты и времени вместо java.util. {Date, Calendar}? Встроенные классы имеют много подобных ошибок.