Aquí te dejo una función que recibe un año y mes cualquiera y te va mostrando los rangos de las semanas del mes:
Código Delphi
[-]
procedure ShowWeekRanges(AYear, AMonth: Word);
var
StartDay: Integer;
DaysInMonth: Integer;
EndDay: Integer;
begin
StartDay := 1;
DaysInMonth := DaysInAMonth(AYear, AMonth);
EndDay := 8 - DayOfWeek(EncodeDate(AYear, AMonth, 1));
repeat
ShowMessage(Format('%d - %d', [StartDay, EndDay]));
StartDay := EndDay + 1;
Inc(EndDay, 7);
if EndDay > DaysInMonth then
EndDay := DaysInMonth
until
StartDay > DaysInMonth;
end;
Saludos...