public static void Main()
var startDate = DateTime.Today.AddDays(10);
var endDate = startDate.AddDays(100);
var days = (int) (endDate - startDate).TotalDays;
var dayOfWeek = DayOfWeek.Monday;
.Select(n => startDate.AddDays(n))
.Where(d => d.Date == startDate || d.DayOfWeek == dayOfWeek)
Console.WriteLine("Starting from {0:dd.MM.yyyy} ({1}) and ending on {2:dd.MM.yyyy} ({3}), payments go:", startDate, startDate.DayOfWeek, endDate, endDate.DayOfWeek);
foreach(var date in dates)
Console.WriteLine("Payment on {0:dd.MM.yyy} ({1})", date, date.DayOfWeek);