.NET Fiddle

CSharp · Console

/Program.cs

using System;
using System.Globalization;
					
public class Program
{
	public static void Main()
	{
		var startDate = new DateTime(2018, 11, 1);
		var endDate = new DateTime(2018, 12, 31);

		int diff = (7 + (startDate.DayOfWeek - DayOfWeek.Monday)) % 7;
		var weekStartDate = startDate.AddDays(-1 * diff).Date;
		var i = 1;
		var weekEndDate = DateTime.MinValue;	
		while(weekEndDate < endDate) {
			weekEndDate = weekStartDate.AddDays(6);
			var shownStartDate = weekStartDate < startDate ? startDate : weekStartDate;
			var shownEndDate = weekEndDate > endDate ? endDate : weekEndDate;
			Console.WriteLine($"Week {i++}: {shownStartDate:dd MMMM yyyy} - {shownEndDate:dd MMMM yyyy}");
			weekStartDate = weekStartDate.AddDays(7);
		}
	}
}
;