我在这里有一个函数,如果当前时间在两个军事时间之间,则尝试返回true。
这里的问题是找到2130
和0700
之间的时间有点棘手。 2130
工作正常,但0700
在2130
之前,因此在此处返回false。我怎样才能让这个回归真实?
只需将&&
切换为||
?
public bool IsSleeping()
{
DateTime m_dt = DateTime.Now;
string strMilitaryTime;
int time;
strMilitaryTime = m_dt.ToString("HHmm"); // Get current military time
time = Convert.ToInt32(strMilitaryTime); // Convert to int
// The time must be between sleeping hours of 2400 and 0700.
if (time >= 2130 && time < 700)
return true;
return false;
}
答案 0 :(得分:2)
public static Boolean IsSleeping()
{
TimeSpan now = DateTime.Now.TimeOfDay;
TimeSpan before = new TimeSpan( 7, 0, 0 );
TimeSpan after = new TimeSpan( 21, 30, 0 );
return now < before || now > after;
}