从excel表中计算值

时间:2014-11-27 14:28:03

标签: c# excel if-statement

我需要在一段时间内计算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年1月的februari或3月,价值为"AM" 列表AM中的第一项将添加1。

时间格式为" M/D/Y H:M:S" 表格中有大约300个项目在这几个月内具有该值,但它返回大约1000个

可能是

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

因为这是代码中唯一改变列表中值的其他东西

1 个答案:

答案 0 :(得分: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]++; 
            }
        }

以此格式测试日期:&#34; 1/1/2012 20:00:00&#34;它起作用了。