C#DateTime检查不正确

Ber*_*ard 0 c# datetime

我的一些代码有点问题.案件如下:

ListView包含一些测量数据.其中一个数据项是状态.此状态可以是10,20.这取决于下一个测量日期的值.

我做的是这个.我采取下一个测量日期并检查当前数据+ 3个月是否高于下一个测量日期.如果是,我返回状态30.如果当前日期> =下一个测量日期,我应该返回20.否则我返回10.

因此,简而言之:当前日期+ 3个月>下一个测量日期=状态30; 当前日期> =下一个测量日期=状态20; else =状态10;

问题是,当下一个测试日期高于下一个测量日期时,状态30将全部返回.以下是我的代码:

private string getMsaStatus(DateTime dtNextMsa)
    {
        if (DateTime.Now.AddMonths(3) > dtNextMsa)
        {
            return "30";
        }
        else if (DateTime.Now >= dtNextMsa)
        {
            return "20";
        }
        else
        {
            return "10";
        }
    }
Run Code Online (Sandbox Code Playgroud)

Dan*_*rth 6

你需要改变它:

if (DateTime.Now >= dtNextMsa.AddMonths(3))
{
    return "30";
}
else if (DateTime.Now >= dtNextMsa)
{
    return "20";
}
else
{
    return "10";
}
Run Code Online (Sandbox Code Playgroud)

此代码考虑了您的评论中的说明.