我们在使用 .NET、C# 处理定时任务的时候,通常会去判断某个时间DateTime是否在一天中的某个时间段(区间)内,那么.NET似乎没有相应的函数,那么应该怎么做呢?
下面给出示例的代码。
private bool IsInTimeInterval(DateTime time, DateTime startTime, DateTime endTime) { //判断时间段开始时间是否小于时间段结束时间,如果不是就交换 if(startTime>endTime) { DateTime tempTime=startTime; startTime=endTime; endTime=tempTime; } //获取以公元元年元旦日时间为基础的新判断时间 DateTime newTime = new DateTime(); newTime=newTime.AddHours(time.Hour); newTime = newTime.AddMinutes(time.Minute); newTime = newTime.AddSeconds(time.Second); //获取以公元元年元旦日时间为基础的区间开始时间 DateTime newStartTime = new DateTime(); newStartTime = newStartTime.AddHours(startTime.Hour); newStartTime = newStartTime.AddMinutes(startTime.Minute); newStartTime = newStartTime.AddSeconds(startTime.Second); //获取以公元元年元旦日时间为基础的区间结束时间 DateTime newEndTime = new DateTime(); if (startTime.Hour > endTime.Hour) { newEndTime = newEndTime.AddDays(1); } newEndTime = newEndTime.AddHours(endTime.Hour); newEndTime = newEndTime.AddMinutes(endTime.Minute); newEndTime = newEndTime.AddSeconds(endTime.Second); if (newTime > newStartTime && newTime < newEndTime) { return true; } return false; }
上面的方法就是判断DateTime是否在一天中的某个时间段,可以直接使用,详细你应该学会了,有问题可以给我留言,谢谢。