Подсчет значений с листа excel


Мне нужно подсчитать точность конкретных значений в листе excel в течение определенного периода. Теперь у меня есть эта часть:

string sub = range.Cells[rCnt, 7].Value.ToString();

   char[] delimiterChars = { ' ', '/', '.', ':', 't' };
   string date = range.Cells[rCnt, 4].Value.ToString();
   string[] d = date.Split(delimiterChars);

   if (d[0] == "1" && d[2] == "2012" || d[0] == "2" && d[2] == "2012" || d[0] == "3" && d[2] == "2012")
   {
        if (sub == "AM") { AM[0]++; }
   }

Я хочу сделать так, что если дата январь февраль или март 2012 года и значение "AM" первый пункт в списке AM добавит 1.

Формат времени - " M/D/Y H:M:S" есть около 300 пунктов в листе, которые имеют это значение в течение этих месяцев, но это дает обратно около 1000

Может ли это быть что-то с

List<int> AM = Enumerable.Repeat(0, 16).ToList();

Потому что это единственная другая вещь в коде, которая изменяет значения в списке

1 2

1 ответ:

Почему бы вам не использовать DateTime для разбора значений:

DateTime dateTime = DateTime.ParseExact(date.Trim(), "M/d/yyyy H:mm:ss", CultureInfo.InvariantCulture);
        if((dateTime.Month == 1 || dateTime.Month == 2 || dateTime.Month == 3) && dateTime.Year == 2012)
        {
            if (sub == "AM") 
            { 
               AM[0]++; 
            }
        }

Тестировали на дату в таком формате:" 1/1/2012 20:00: 00 " и это сработало.