我需要在一段时间内计算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();
因为这是代码中唯一改变列表中值的其他东西
答案 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;它起作用了。