Тестовое задание на должность .NET Developer

Необходимо реализовать метод, преобразующий список доступных дат в список заблокированных дат.

namespace ConsoleApplication1

{

    internal static class Program

    {

        private static void Main(string[] args)

        {

            DateTime minDate = new DateTime(2015, 1, 1), maxDate = DateTime.Today;

            var availableRanges = new[]

            {

                new[]

                {

                    new DateTime(2015, 2, 4),

                    new DateTime(2015, 2, 12),

                },

                new[]

                {

                    new DateTime(2015, 8, 20),

                    new DateTime(2015, 8, 20),

                },

                new[]

                {

                    new DateTime(2015, 4, 15),

                    new DateTime(2015, 5, 5),

                },

                new[]

                {

                    new DateTime(2015, 10, 5),

                    DateTime.Today.AddDays(-1)

                }

            };

            var blockedRanges = invertDateRanges(availableRanges, minDate, maxDate);

            foreach (var range in blockedRanges)

            {

                Console.WriteLine("{0:dd.MM.yyyy} - {1:dd.MM.yyyy}", range[0], range[1]);

            }

            Console.ReadKey();

        }

        private static DateTime[][] invertDateRanges(DateTime[][] inputRanges, DateTime minDate, DateTime maxDate)

        {

            throw new NotImplementedException();

        }

    }

}