我正在做一个函数来检查24小时格式的时间范围之间的时间差,但是我的代码有一些问题,有没有人可以指出如何解决?当时间落在时间范围之间时,返回True?
我的代码:
bool isDoTime(int starthour, int startminute, int endhour, int endminute)
{
TimeSpan start = new TimeSpan(starthour, startminute, 0);
TimeSpan end = new TimeSpan(endhour, endminute, 0);
TimeSpan add24h = new TimeSpan(24, 0, 0);
TimeSpan now = DateTime.Now.TimeOfDay;
if (starthour > endhour || (endhour == starthour && endminute <= startminute))
{
end += add24h;
}
if ((now > start) && (now < end))
{
return true;
}
return false;
}
问题:我想至20:30之间返回true时,当前时间 - 下午3:30,但是当我下面我的代码运行。条件是返回true只有从8:30到00:00,从00:00不是真的 - 3:30
if (isDoTime(20,30,3,30) //return true from 20:30 - 3:30
{
//dosomething
}
的问题是,你是转换3:30结束时间为27:30,但你不2:30当前时间转换成26 :30。 – 2011-02-10 11:51:14