This is the solution :
DECLARE @startDate date , @endDate date;
SET @startDate = ( SELECT proj_start_date FROM [BSD].[dbo].[d_project_p] WHERE proj_id = 1)
SET @endDate = ( SELECT proj_end_date FROM [BSD].[dbo].[d_project_p] WHERE proj_id = 1);
with tmp(plant_date) as
(
select cast(@startDate as datetime)
union all
select plant_date + 1
from tmp
where plant_date < @endDate
)
SELECT
'Week '+CAST(ROW_NUMBER () OVER (ORDER BY start_of_week) AS VARCHAR(20)),
start_of_week,
DATEADD(day, 6, start_of_week) AS end_of_week
FROM tmp
CROSS APPLY ( VALUES( DATEPART(weekday, DATEADD(day, @@DATEFIRST -1, plant_date)) - 1 ) ) AS A1(dist)
CROSS APPLY ( VALUES( DATEADD(day, -dist, plant_date) ) ) AS A2(start_of_week)
GROUP BY start_of_week
option (maxrecursion 0)