2013-05-02 10 views
0

저는 프로그래밍에서 새로운 사람입니다.운영자를 적용 할 수 없습니다.

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

오류 표시 : 운영자 '< ='타입 '문자열'과 '문자열'의 피연산자에 적용 할 수 없습니다가

아무도 도와 줄 수 코드 줄을 쓸 때 나는 오류가?

+1

사용'=='<=' – Xaqron

+0

다른 옵션 1 일하려고 okay..i'll ..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

감사합니다. 나 하나 또는 둘 중 하나를 시도해보십시오 ..감사합니다 – azfar

+0

한 번 더 생각해. 나는 타이머를 쓰려고 노력했다. 이것을 쓰면, 타이머를 올바르게 사용하지 않아도 될까요? – azfar

+0

감사합니다. .. 직장 .. :) – azfar

0

< = 문자열 값에 대해 연산자가 정의되지 않았습니다. 대신

봐 이것 날짜 시간 인스턴스의 관점에서 비교를해야합니다

0

문자열로 변환하지 않고 DateTime을 직접 비교해야합니다. 로 DateTime에 대한 <= operator has been implemented은 그래서 쉽게해야한다 :

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

는 참고하면 문자열을 <=를 사용할 수없는 대신 string.CompareTo를 사용해야합니다. 다른 구문

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

또는 staticstring.Compare 방법.

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

또한 DateTime.ToShortTimeString()는 정렬 (모든 경우에) 형식으로 포맷을 제공하지 않습니다. time.ToString("u")을 사용하면 정렬 가능한 날짜/시간 패턴 형식을 사용하여 날짜를 문자열로 가져올 수 있습니다. 당신이 이것을 원할만한 유스 케이스는 날짜를 HTML로 출력하고 자바 스크립트로 정렬하는 것이다.

1

...

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