活跃于一系列时间

时间:2015-07-11 10:46:22

标签: c# windows forms datetime if-statement

有没有办法在c#的一系列时间内激活消息框。我可以在13:00和16:00之间显示一个消息框。

group by

如果您有解决此问题的方法,请告诉我,因为我已经坚持了一段时间。

这是我到目前为止的代码。

if(DateTime.TimeOfDay(13,0,0 to 16,0,0)
{
    messagebox.show("You need to feed the dog now");
}

2 个答案:

答案 0 :(得分:0)

您可以轻松使用<>运算符来比较您的TimeSpan值,例如;

var ts = DateTime.Now.TimeOfDay;
if(ts > new TimeSpan(13, 0, 0) && ts < new TimeSpan(16, 0, 0))
{
     MessageBox.Show("You need to feed the dog now");
}

答案 1 :(得分:0)

如果您只使用小时作为限制,您也可以这样做:

int thisHour = DateTime.Now.Hour;
if(thisHour.CompareTo(13 - 1) + thisHour.CompareTo(16) == 0)
{
    MessageBox.Show("You need to feed the dog now.");
}

或者,关于你的扩展任务:

int thisHour = DateTime.Now.Hour;
string salutation = "Good Evening";

if(thisHour < 12)
{
    salutation = "Good Morning";
}
else if (thisHour < 17)
{
    salutation = "Good Afternoon";
}
synthesizer.SpeakAsync(salutation);