生日未出现在frm_Load上

时间:2019-03-05 15:44:40

标签: c# visual-studio reminders

当我试图让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)只是为了让我稍后再让它在一周前给我提供信息。

谢谢

2 个答案:

答案 0 :(得分:2)

  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) { ... }

答案 1 :(得分:0)

如果您添加0天,则“ if”如下所示:

if(bday>now && bday<now)

此“如果”始终为假。

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