C# 如何根据日历月的变化增加int变量

C# 如何根据日历月的变化增加int变量,c#,datetime,C#,Datetime,我有一个命名的字符串变量,每当它们在日历月中发生变化时,我都希望它递增1。我已经将变量初始化为52,我想要的是假设日期从2019年8月1日更改为2019年9月1日,然后值增加到53,日期从2019年9月1日更改为2019年10月1日,值增加到54,依此类推。当我使用下面的do while循环尝试相同的操作时,我得到异常 无法将类型“System.DateTime”隐式转换为bool 关于如何正确进行检查,使变量随月份变化而增加,有何建议?如何检索fileId的当前值,因为我认为我的实现在每次更改

我有一个命名的字符串变量,每当它们在日历月中发生变化时,我都希望它递增1。我已经将变量初始化为52,我想要的是假设日期从2019年8月1日更改为2019年9月1日,然后值增加到53,日期从2019年9月1日更改为2019年10月1日,值增加到54,依此类推。当我使用下面的do while循环尝试相同的操作时,我得到异常

无法将类型“System.DateTime”隐式转换为bool


关于如何正确进行检查,使变量随月份变化而增加,有何建议?如何检索fileId的当前值,因为我认为我的实现在每次更改时也检索52。

为什么fileId是字符串?如注释字符串中所述,不递增-数字递增。 所以我会改变声明

string fileId=“52”

您可以执行所有您喜欢的递增或递减操作,例如:

while (firstDayCurrentMonth.AddMonths(1))
{
     int currentId = fileId++; 
}

如果在任何时候都要求fileId的值是一个字符串,只需调用
ToString()
方法。
fileId.ToString()

AddMonths
返回一个
DateTime
,而不是
bool
。这正是编译器错误告诉您的。在循环的条件下,只能在
中使用
bool
-返回表达式。字符串不会递增。使用and integer并在需要时和地点转换为字符串string@dymanoid已确认,但如何检查何时已将月份添加到date实例Now使用属性月份。firstDayCurrentMonth.Month将返回整数形式的月份。现在你可以和现在。月份相比。看看微软的参考资料。你有比较的目标日期时间吗?类似于
var targetDate=firstDayCurrentMonth.AddMonths(3);而(firstDayCurrentMonth
,可能(
currentFileId
是一个
int
,在循环外声明,初始化为
fileId
作为int)?
int fileId = 52;
while (firstDayCurrentMonth.AddMonths(1))
{
     int currentId = fileId++; 
}