カレンダーで特定の曜日を先頭に持ってくると、例えば土曜日が2日だった場合に、1日が落ちてしまいました。そこで、もしカレンダー作成の最初の日が1日より後だった場合、開始を -7 することで、開始の日程を一週間前からにして解決しました。
if ((-dayofweek) + theDay > 0) { cal.add(Calendar.DATE, (-dayofweek + theDay) - 7); } else { cal.add(Calendar.DATE, (-dayofweek + theDay)); }
インプットが日曜=0なのに対してデフォルトが日曜=1なので、少し読みづらいと思うので、機会があればインプットを調節してみます。