110,538
社区成员
发帖
与我相关
我的任务
分享
static bool InBetween(TimeSpan begin, TimeSpan end, TimeSpan toCheck)
{
if (begin.TotalDays > 1 || end.TotalDays > 1 || toCheck.TotalDays > 1)
{
throw new Exception("Not a valid time of a day");
}
if (begin <= end) return begin <= toCheck && toCheck <= end;
else return begin <= toCheck || toCheck <= end;
}
static bool InBetween(TimeSpan begin, TimeSpan end, TimeSpan toCheck)
{
if (begin.TotalDays > 1 || end.TotalDays > 1 || toCheck.TotalDays > 1)
{
throw new Exception("Not a valid time of a day");
}
// 如果起始时间晚于结束时间,反转结果
return (begin <= toCheck && toCheck <= end) ^ (begin > end);
}
static void Test()
{
TimeSpan begin = TimeSpan.FromHours(20);
TimeSpan end = TimeSpan.FromHours(8);
TimeSpan toCheck = TimeSpan.Parse("02:00:00");
bool inbetween = InBetween(begin, end, toCheck); // true
}
DateTime now = DateTime.Now;
DateTime old = DateTime.Now - new TimeSpan(1, 0,0,0);
DateTime later = DateTime.Now + new TimeSpan(1, 0, 0, 0); ;
Assert.IsTrue(now > old);
Assert.IsTrue(now < later);