如何找出是新的一个月

时间:2018-11-30 04:13:21

标签: c#

我试图在每个月的第一天发出通知,但是当前我有错误。

我面临的错误是,该月的每个最后一天都会不断声明这是一个新月,这不是我期望的结果

我将代码放在这里

net start mysql80

Error img

3 个答案:

答案 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);