这里注重的是环状区间的判断!如果单纯的只是时间判断完全可以直接比较大小即可如:time>=time1&&time=<time2
/// <summary>
/// 判断是否在环状数据的指定区间内
/// </summary>
/// <param name="ringSize">环的大小</param>
/// <param name="first">起始位置</param>
/// <param name="last">终止位置</param>
/// <param name="num">需要判断的数据</param>
/// <returns>是否在区间内</returns>
public static bool InRingSection(double ringSize, double first, double last, double num)
{
first %= ringSize;
last %= ringSize;
double distance = (last + ringSize - first) % ringSize;
return (num + ringSize - first) % ringSize <= distance;
}
使用:判断当前时间是否在晚上10点到早上8点之间
private static void Main(string[] args)
{
//判断当前时间是否在晚上10点到早上8点之间,因为7点59取到的小时部分是7,所以取值应该是22:00:00~07:59:59
bool bl = InRingSection(24, 22, 07, DateTime.Now.Hour);
Console.Write(bl);
Console.ReadLine();
}