C#日期时间时间跨度

时间:2019-02-05 15:56:48

标签: c#

我想要一个带有消息框的时间跨度,该消息框告诉您一天中的哪一天。我每天早上好,今天下午好。我也晚上好。我是C#的初学者。现在,代码一次显示所有消息框(一个又一个)。有人可以向我解释我在这里做错了吗。

这是我的代码:

我试图这样做:if(morgenStart == b && morgenEnd == b)

但这也不起作用,预期的代码需要向我显示消息框在一天的哪一天。

TimeSpan morgenStart = new TimeSpan(06, 0, 0);
TimeSpan morgenEnd = new TimeSpan(12, 0, 0);
TimeSpan middagStart = new TimeSpan(12, 0, 0);
TimeSpan middagEnd = new TimeSpan(14, 0, 0);
TimeSpan namiddagStart = new TimeSpan(17, 0, 0);
TimeSpan namiddagEnd = new TimeSpan(18, 0, 0);

String a = DateTime.Now.ToLongDateString();
TimeSpan b = DateTime.Now.TimeOfDay;

textBox1.Text = a + " " + b;

if (morgenStart < morgenEnd)
{
   MessageBox.Show("Goedemorgen", "Tijd",
   MessageBoxButtons.OK, MessageBoxIcon.Information);
}
if (middagStart < middagEnd)
{
   MessageBox.Show("Goedemiddag", "Tijd",
   MessageBoxButtons.OK, MessageBoxIcon.Information);
}
if (namiddagStart < namiddagEnd)
{
   MessageBox.Show("Goede namiddag", "Tijd",
   MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
   MessageBox.Show("Goede avond", "Tijd",
   MessageBoxButtons.OK, MessageBoxIcon.Information);
}

1 个答案:

答案 0 :(得分:2)

您的if语句应与b进行比较。另外,考虑使用else if块来防止多个匹配。例如:

if (b > morgenStart && b < morgenEnd)
{
    //Goedemorgen
}
else if (b > middagStart && b < middagEnd)
{
    //Goedemiddag
}
else if (b > namiddagStart && b < namiddagEnd)
{
    //Goede namiddag
}
else
{
    //Not really sure what you want to do here, I don't speak Dutch!
    //Goede avond
}