我试图在每个月的第一天发出通知,但是当前我有错误。
我面临的错误是,该月的每个最后一天都会不断声明这是一个新月,这不是我期望的结果
我将代码放在这里
net start mysql80
答案 0 :(得分:6)
您可以在每个月的开始日期开始触发通知,因为它总是从第1天开始。
我希望这会对您有所帮助。
if (DateTime.Now.Day == 1)
{
MessageBox.Show("Its a new month");
}
else {
MessageBox.Show("Its old month");
}
答案 1 :(得分:0)
让我们分解一下代码:
DateTime firstDayOfnextMonth = new DateTime(
DateTime.Today.Year,
DateTime.Today.Month,
DateTime.DaysInMonth(DateTime.Today.Year, DateTime.Today.Month));
对于今天的日期,DateTime.Today将返回2018/11/30
。因此,DateTime.DaysInMonth()
将返回30。
用2018年,11月和30日期构造一个DateTime当然会创建一个表示2018/11/30
的日期对象,而不是您期望的2018/12/01
。
正如AGH在他们的回答中所说,您只需检查是否DateTime.Now.Day == 1
。
答案 2 :(得分:0)
如果您仍在寻找下个月的第一天,则可以尝试以下方法:
DateTime d = new DateTime(2018, 12, 20);//or DateTime.Today...
DateTime firstDayOfnextMonth = new DateTime(d.Year + (d.Month) / 12, (d.Month) % 12 + 1, 1);