我想要一个带有消息框的时间跨度,该消息框告诉您一天中的哪一天。我每天早上好,今天下午好。我也晚上好。我是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);
}
答案 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
}