2015-06-28 3 views
1

Имея сегодняшнюю дату, например: DateTime.NowC# TimeOfDay не между 2 timespans

И 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 или вне этого диапазона.

UPDATE:

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

+0

'TimeSpan' не представляет * два часа *. Он представляет собой период времени, в вашем случае 14 часов и 15 часов, а не 2 вечера и 3 вечера соответственно. – MarcinJuraszek

+0

Спасибо. Я внес изменения. – user2818430

+0

@MarcinJuraszek но это * может * представлять время, если день, как указывает ответ toby. – phoog

ответ

3

Сравнивая их, кажется, работает швы на работу. TimeOfDay является TimeSpan так же, как и startend

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

Fiddle

+0

Правильное условие: 'mydate.TimeOfDay <= start || mydate.TimeOfDay> = end'. Я помечаю ваш ответ как правильный, чтобы отправить меня в правильном направлении. – user2818430

+0

@ user2818430 Спасибо, что изначально было видно, было ли это внутри интервала, когда я обновил забытое изменение && в || – trebor

+0

Обычно диапазон значений представляет собой полуоткрытый интервал '[начало, конец]'. Чтобы проверить внутри диапазона, используйте 'time> = start && time = end'. У вас оно близко, но не исключая стартовую ценность. –

 Смежные вопросы

  • Нет связанных вопросов^_^