Получить разницу в дате и времени в массиве

#datetime #c#-2.0

#дата и время #c #-2.0

Вопрос:

Мне нужно предсказать разницу в дате и времени в массиве ячеек…

пример:

С даты: 30.04.2011 По дату:30.05.2011

ячейка массива содержит даты с 30.04.2011 по 30.05.2011

Комментарии:

1. Что вы подразумеваете под «предсказать»? Как работает это предсказание?

2. если мы используем timespan, мы можем получить разницу по дате, по дням, по часам… но это возвращает значение int … но мне нужны промежуточные даты между ними в array[].

Ответ №1:

Вы можете использовать CalendarPeriodCollector этой библиотеки:

 // ----------------------------------------------------------------------
public void CalendarPeriodCollectorSample()
{
  CalendarPeriodCollector collector =
     new CalendarPeriodCollector( new CalendarPeriodCollectorFilter(), 
     new TimeRange( new DateTime( 2011, 4, 30 ), new DateTime( 2011, 5, 30 ) ) );
  collector.CollectDays();
  foreach ( ITimePeriod period in collector.Periods )
  {
    Console.WriteLine( "Period: "   period ); // all days between 04/30/2011 and 05/30/2011
  }
} // CalendarPeriodCollectorSample
  

Вы также можете указать дни исключения (праздничные дни) или собрать периоды по часам.

Ответ №2:

Я думаю, вы ищете это:

  DateTime start = Convert.ToDateTime("04/30/2011");
            DateTime end = Convert.ToDateTime("05/30/2011");
            List<DateTime> dateArray = new List<DateTime>();
            while (end > start.AddDays(1))
            {
               end= end.AddDays(-1);
               dateArray.Add(end);
            }
            DateTime[] array = dateArray.ToArray();