假设当前月份是“十月”。我希望它会在当月增加一个月,即会显示“11月”。为此,我的代码写在下面,但它给出了输入字符串格式不正确的异常。
那么请更正代码?
if (Convert.ToInt32(ddlMonth.SelectedIndex ) <= Convert.ToInt32(DateTime.Now.AddMonths(1).ToString()))
{
TotalBalanceUptoSelectedPreviousMonth();
}
答案 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方法,因为它已经是一个整数。