如果startTime
和endTime
表示單個時間間隔(它只會發生一次,startTime
和endTime
表示日期和開始/停止的時間),那麼它的話說
bool isTimeBetween = someTime >= startTime && someTime <= endTime;
如果那麼容易這是一個反覆發生的事件(每隔一段時間發生一次),您可以使用TimeOfDay
屬性進行比較。 (反覆出現的情況是一個,你必須考慮啓動/停止跨越午夜)
static public bool IsTimeOfDayBetween(DateTime time,
TimeSpan startTime, TimeSpan endTime)
{
if (endTime == startTime)
{
return true;
}
else if (endTime < startTime)
{
return time.TimeOfDay <= endTime ||
time.TimeOfDay >= startTime;
}
else
{
return time.TimeOfDay >= startTime &&
time.TimeOfDay <= endTime;
}
}
(注:此代碼假定如果start == end
,那麼它涵蓋了所有的時間,您所提出的意見,以這種效果。在另一個崗位)
例如,要檢查它是否是早上5時至9:30 PM
IsTimeOfDayBetween(someTime, new TimeSpan(5, 0, 0), new TimeSpan(21, 30, 0))
如果startTime
和endTime
是DateTime
秒之間,你可以說
IsTimeOfDayBetween(someTime, startTime.TimeOfDay, endTime.TimeOfDay)
開始時間和結束時間的日期時間也沒有時間跨度 – scottm 2009-02-26 20:23:20
在我的應用程序 – scottm 2009-02-26 20:36:16