生日没有出现在 frm_Load

Birthday dosen't appear on frm_Load

当我尝试让 af Label 告诉我某个特定日期的生日时,如代码中所设置的,它没有出现。它仍然只是回应(没有生日)。 谁能看到我做错了什么?

DateTime bday = Convert.ToDateTime("05-03-2019");
int years = DateTime.Now.Year - bday.Year;
bday = bday.AddYears(years);
DateTime check = DateTime.Now.AddDays(0);
if ((bday > DateTime.Now) && (bday<check))
{
    lblFødselsdag.Text = ("You have birthday");
}
else
{
    lblFødselsdag.Text = ("No birthday");
}

DateTime.Now.AddDays(0) 只是为了,如果我以后想要,让它在一周前给我信息。

谢谢

如果您添加 0 天,您的 "if" 将如下所示:

if(bday>now && bday<now)

这个"if"永远是错误的。

第一个表达式取消了第二个表达式的资格。

  1. bday > DateTime.Now 是错误的,因为 DateTime.Now 包括一天中的时间,而 bday 不包括。
  2. “05-03-2019”被解析为 5 月 3 日而不是 3 月 5 日。

试试这个:

DateTime bday = Convert.ToDateTime("03-05-2019");

int years = DateTime.Now.Year - bday.Year;
bday = bday.AddYears(years);
DateTime check = DateTime.Now.AddDays(0);
if ((bday >= DateTime.Now.Date) && (bday<check))
{
    lblFødselsdag.Text = ("You have birthday");
}
else
{
    lblFødselsdag.Text = ("No birthday");
}

或者按照@bassfader 的建议简单地比较年份和月份:

if (DateTime.Now.Day == bday.Day && DateTime.Now.Month == bday.Month) { ... }