2013-05-02 4 views
0

Я новичок в программировании. Я получаю ошибку при написании этой строки кода:Оператор не может быть применен

var time = DateTime.Now.ToShortTimeString().ToString(); 
var timePattern = "09:30"; 
      if (time.ToString() <= timePattern.ToString()) 
{ 
//disable the button 
} 

дисплей сообщение об ошибке: Operator «< =» не может быть применен к операндам типа «строки» и «строка»

Может кто-нибудь мне помочь?

+1

Использование '==' вместо '<=' – Xaqron

+0

okay..i'll попробовать другой вариант 1 ..thanks – azfar

ответ

2

Оператор не может быть использован для ввода string.

Похоже, вы пытаетесь проверить, не текущее время меньше 9:30. Для этого сравните экземпляры DateTime.

DateTime currentTime = DateTime.Now; 
//Creates a DateTime instance with the current year, month, day at 9:30AM 
DateTime nineThirty = 
    new DateTime(currentTime.Year, currentTime.Month, currentTime.Day, 9, 30, 0); 
if(currentTime.TimeOfDay <= nineThirty.TimeOfDay) 
{ 
    //your code 
} 
+0

спасибо .. я попробую 1-й либо он работает, либо нет ..спасибо – azfar

+0

Еще один думаю..и пытался сделать timer.so, написав это, мне не нужно использовать таймер? – azfar

+0

спасибо..и работа .. :) – azfar

0

Не включайте DateTimes в строки, чтобы сравнить их, использовать DateTimes непосредственно.

Чтобы превратить строку в DateTime, используйте DateTime.Parse или DateTime.ParseExact

Примечание

Для сравнения строк:

Использование String.Compare для compare строк, как это.

<= не был использован для струн.

0

Вы должны быть непосредственно связаны с DateTime s, а не конвертировать их в строки. <= operator has been implemented для DateTime поэтому она должна быть столь же легко, как:

var time = DateTime.Now; 
var timePattern = new DateTime(time.Year, time.Month, time.Day, 9, 30, 0); 
if (time <= timePattern) 
{ 
    //disable the button 
} 

FYI Вы не можете использовать <= для строк, вам нужно будет использовать вместо string.CompareTo.

if (time.ToString().CompareTo(timeParrent.ToString()) <= 0) 

Или static метод string.Compare для альтернативного синтаксиса.

if (string.Compare(time.ToString(), timeParrent.ToString()) <= 0) 

Также DateTime.ToShortTimeString() не даст формат в формате сортируемого (во всех случаях). Вы можете использовать time.ToString("u"), чтобы получить дату в виде строки, используя отсортированный формат даты/времени. Пример использования, в котором вы хотели бы сделать это, будет печатать дату в HTML и сортировать JavaScript.

1

Вы можете сделать это без указания год/месяц/день ...

 if (DateTime.Now.TimeOfDay < new TimeSpan(9, 30, 0)) 
     { 
      // ... it's before 9:30 am ... 
     }