如何在当月添加一个月?

时间:2010-10-12 13:02:55

标签: asp.net

假设当前月份是“十月”。我希望它会在当月增加一个月,即会显示“11月”。为此,我的代码写在下面,但它给出了输入字符串格式不正确的异常。

那么请更正代码?

if (Convert.ToInt32(ddlMonth.SelectedIndex ) <= Convert.ToInt32(DateTime.Now.AddMonths(1).ToString()))
            {
                TotalBalanceUptoSelectedPreviousMonth();
            }

4 个答案:

答案 0 :(得分:4)

这应该可行:

if (Convert.ToInt32(ddlMonth.SelectedIndex ) 
    <= Convert.ToInt32(DateTime.Now.AddMonths(1).ToString("M")))

    TotalBalanceUptoSelectedPreviousMonth();

然而,它看起来更简单:

if (Convert.ToInt32(ddlMonth.SelectedIndex) <= DateTime.Now.AddMonths(1).Month)
    Total...();

答案 1 :(得分:2)

我会站出来告诉你这就是你要找的东西:

if(ddlMonth.SelectedIndex <= DateTime.Now.AddMonths(1).Month)
{
    TotalBalanceUptoSelectedPreviousMonth();
}

为什么不使用DateTime结构的Month属性(已经是整数),而不是将日期作为字符串并转换它?

(哦......和SelectedIndex也已经是一个整数,不需要调用转换)

答案 2 :(得分:2)

Convert.ToInt32(DateTime.Now.AddMonths(1).ToString())

可能会给出异常,因为DateTime.Now.AddMonths(1).ToString()值不能转换为Int32。

答案 3 :(得分:1)

您需要使用DateTime.Now.AddMonths(1).Month 此外,您不需要使用Convert.ToInt32方法中包含的ToString方法,因为它已经是一个整数。