У меня есть список DateTimes, и мне нужно «инвертировать» (из-за отсутствия лучшего слова) этого списка.C# 'инвертировать' список DateTime
public class Available
{
public Available(DateTime startDate, DateTime endDate)
{
if (!startDate.Day.Equals(endDate.Day))
throw new Exception("The start and end days are not equal.");
this.StartDate = startDate;
this.EndDate = endDate;
}
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
}
List<Available> availableTimes = new List<Available>()
{
new Available(new DateTime(2015, 3, 16, 08, 00, 00), new DateTime(2015, 3, 16, 10, 00, 00)),
new Available(new DateTime(2015, 3, 16, 12, 00, 00), new DateTime(2015, 3, 16, 14, 00, 00)),
new Available(new DateTime(2015, 3, 16, 15, 00, 00), new DateTime(2015, 3, 16, 16, 00, 00)),
};
Мне нужно преобразовать этот список доступных раз в список блокируемых раз за этот день, но я вроде застрял. В этом случае мне необходимо:
2015-3-16 00:00 - 2015-3-16 08:00,
2015-3-16 10:00 - 2015-3-16 12:00,
2015-3-16 14:00 - 2015-3-16 15:00,
2015-3-16 16:00 - 2015-3-16 23:59
Любые яркие идеи?
Проблема, о которой вы говорите, называется «пробелы и острова». Я поставил этот тег на ваш вопрос, чтобы уточнить. – DrCopyPaste
Когда время, которое должно быть представлено на выходе, должно начинаться и заканчиваться? – Codor
Я никогда не слышал об этом термине. Благодарю. –