c# TimeOfDay не между 2 времеви интервала

С днешна дата например: DateTime.Now

И 2 TimeSpan, който представлява два периода от време

DateTime mydate = DateTime.Now;

TimeSpan start = TimeSpan.Parse("14:00:00");
TimeSpan end =   TimeSpan.Parse("15:00:00");

// TO DO: 

Как да проверите дали времето mydate (TimeOfDay) не е между диапазона start и end.

Основно проверете дали часовете, минутите, секундите са между 14:00 и 15:00 или извън този диапазон.

АКТУАЛИЗАЦИЯ:

Правилното условие е: mydate.TimeOfDay <= start || mydate.TimeOfDay >= end


person user2818430    schedule 28.06.2015    source източник
comment
TimeSpan не представлява два часа. Той представлява период от време, във вашия случай 14 часа и 15 часа, а не съответно 14:00 и 15:00 часа.   -  person MarcinJuraszek    schedule 28.06.2015
comment
Благодаря. Направих промените.   -  person user2818430    schedule 28.06.2015
comment
@MarcinJuraszek, но може да представлява време, ако е ден, както показва отговорът на Тоби.   -  person phoog    schedule 28.06.2015


Отговори (1)


Сравняването им изглежда работи по шевовете. TimeOfDay е TimeSpan точно като start и end

Console.WriteLine(mydate.TimeOfDay <= start || mydate.TimeOfDay >= end);

Fiddle

person Bobby Tables    schedule 28.06.2015
comment
Правилното условие е: mydate.TimeOfDay <= start || mydate.TimeOfDay >= end. Ще маркирам отговора ви като правилен, за да ме изпратите в правилната посока. - person user2818430; 28.06.2015
comment
@user2818430 Благодаря ви, първоначално погледнах дали беше в интервала, когато актуализирах, забравих да променя && в || - person Bobby Tables; 28.06.2015
comment
Обикновено диапазон от времена е полуотворен интервал [start,end). За да тествате в диапазона, използвайте time >= start && time < end. За да тествате извън диапазона, използвайте time < start || time >= end. Имате го близо, но не изключвате началната стойност. - person Matt Johnson-Pint; 08.07.2015