如果当前时间介于两个军事时间之间,则返回true?

时间:2017-08-29 06:52:15

标签: c#

我在这里有一个函数,如果当前时间在两个军事时间之间,则尝试返回true。

这里的问题是找到21300700之间的时间有点棘手。 2130工作正常,但07002130之前,因此在此处返回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;
}

1 个答案:

答案 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;
}