public static void Main()
DateTime eventDate = new DateTime(2014,02,22);
DateTime repeatUntil = new DateTime(2014,08,22);
string repeatOn = "Sat,Fri,Mon";
var repeatOnArray = repeatOn.Split(',');
Console.WriteLine("Today is: " + eventDate.DayOfWeek.ToString());
var eventDateRepeated = eventDate;
while (DateTime.Compare(eventDateRepeated, repeatUntil) < 0)
var startDayInNextWeek = GetNextWeekday(eventDateRepeated, FindDayOfWeekByString(repeatOnArray[0]));
for(var i=0; i<repeatOnArray.Length; i++)
DateTime nextDay = GetNextWeekday(eventDateRepeated, FindDayOfWeekByString(repeatOnArray[i]));
Console.WriteLine("Next " + repeatOnArray[i] + " is: " + nextDay.ToString());
eventDateRepeated = nextDay;
eventDateRepeated = startDayInNextWeek.AddDays(14);
Console.WriteLine("Next week begin at: " + eventDateRepeated.ToString());
public static DateTime GetNextWeekday(DateTime start, DayOfWeek day)
int daysToAdd = ((int) day - (int) start.DayOfWeek + 7) % 7;
return start.AddDays(daysToAdd);
public static DayOfWeek FindDayOfWeekByString(string day){
return DayOfWeek.Tuesday;
return DayOfWeek.Wednesday;
return DayOfWeek.Thursday;
return DayOfWeek.Saturday;
return DayOfWeek.Saturday;