C#中DateTime的异常处理程序

时间:2017-03-02 03:49:01

标签: c# exception-handling

我正在尝试为datetime提供错误消息。我的意思是,如果datetime不包含表中的所有月份,则应该发出警告。我该怎么做?

例如:日期时间:2017/01/01T00:00:002017/02/01T00:00:00,... 2017/12/01T00:00:00,在表格中,我想控制

如果2017/01/01T00:00:002017/02/01T00:00:00,... 2017/12/01T00:00:00,则不包含错误。

我想控制

if(datetime != "1.01.2017 00:00:00" && datetime != "1.02.2017 00:00:00" && datetime != "1.03.2017 00:00:00" && datetime != "1.04.2017 00:00:00" && datetime != "1.05.2017 00:00:00" && datetime != "1.06.2017 00:00:00" && datetime != "1.07.2017 00:00:00" && datetime != "1.08.2017 00:00:00" && datetime != "1.09.2017 00:00:00" && datetime != "1.10.2017 00:00:00" && datetime != "1.11.2017 00:00:00" && datetime != "1.12.2017 00:00:00")
{

    throw new Error("Please enter all months");

}

但是如何编写更有效的代码?

1 个答案:

答案 0 :(得分:0)

你可以尝试这样的事情

   DateTime time =  Convert.ToDateTime("2016/01/01T00:00:00");

    if (time.Year != 2017)
    {
            throw  new Exception("not in 2017");
    }

这将检查年份2017是否会通过,throw exception

修改

以字符串计算月数,你可以这样做

 int total =0;
            var strlist = new [] { "2017 / 01 / 01T00:00:00", "2017 / 02 / 01T00: 00:00" };
            foreach (var date in strlist)
            {
                var datetime = Convert.ToDateTime(date);
                if (datetime.Year == 2017)
                {
                    total++;
                }
            }
            if (total <12)
            {
                throw new Exception("Please enter all months");
            }