c#/.NET 怎样判断DateTime是否在一天中的某个时间段

知道91 | 教程 | 2014-09-18 | 阅读:24766

我们在使用 .NET、C# 处理定时任务的时候,通常会去判断某个时间DateTime是否在一天中的某个时间段(区间)内,那么.NET似乎没有相应的函数,那么应该怎么做呢?

.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是否在一天中的某个时间段,可以直接使用,详细你应该学会了,有问题可以给我留言,谢谢。