2012-09-07 7 views
0

사용자 입력이 실제로 날짜 인 경우 convertstring to datetime to validate으로 보내려고합니다.암시 적으로 bool 형식을 System.DateTime으로 변환 할 수 없습니다. (C#)

내가 갖는 오류 : 나는 잠시 동안 온라인으로 찾아 봤는데 나를 이해하는 데 도움이 충분히 특정 아무것도 찾을 수 없습니다

Cannot implicitly convert type bool to System.DateTime. 

.

코드 : 사전에

public bool is21YearsOfAge(string argument) 
    { 
     DateTime _parsedDateArgument; 
     DateTime convertStringToDate = System.DateTime.TryParse(argument, out >_parsedDateArgument); 

     if (convertStringToDate > DateTime.Now) 
     { 
      //do something 
     } 

    } 

감사합니다.

+1

날짜의 형식은 무엇입니까? –

+0

내 서식을 고쳐 주셔서 감사합니다 (여기에 초보자). – MuffinGuard

답변

2

해야한다. 이 일을보십시오 : argument가 날짜가

DateTime convertStringToDate; 
bool isDate = DateTime.TryParse(argument, out convertStringToDate); 

경우, convertStringToDateDateTime로 해당 날짜를 포함합니다. , 인수 변환하는 유효한 날짜 문자열을 사용할 경우에

+0

감사합니다. Dan (도와 주신 모든 분들). – MuffinGuard

2

DateTime.TryParse는 구문 분석이 성공적인지 여부를 나타내는 bool을 반환합니다. 그래서 당신은 TryParse 방법은 구문 분석 오히려 Parse 방법이하는 것처럼 예외를 던지는 것보다, 성공 여부를 알려주는 bool을 반환

System.DateTime.TryParse(argument, out _parsedDateArgument); 
DateTime convertStringToDate =_parsedDateArgument 
1

DateTime convertStringToDate; 

if(System.DateTime.TryParse(argument, out convertStringToDate)) 
{ 
    //Now you will have converted date in convertStringToDate 
    if (convertStringToDate > DateTime.Now) 
    { 
     //do something 
    } 
} 
else 
{ 
    //argument not have a valid date 
} 

System.DateTime.TryParse 사실 retrun 할 수 있어야합니다. 변환 된 날짜는 out 매개 변수에 저장됩니다.

0

DateTime.TryParse는 DateTime 값을 반환하지 않습니다. 구문 분석 할 수 있는지 나타내는 bool을 반환합니다. 것으로,

DateTime dateTime; 
bool success = DateTime.TryParse(text, out dateTime); 

경우 success이 거짓 : 그것은 반환bool하지만, 분석 결과에 대한 출력 매개 변수가 있습니다 -

대신 documentation for DateTime.TryParse

DateTime convertStringToDate; 
if(DateTime.TryParse(argument, out convertStringToDate)){ 
    //ok value is good 
}else{ 
    //Not ok value is not good 
} 
1

봐를 사용 텍스트를 파싱 할 수 없음을 의미합니다. (. 그래서 일반적으로이 시점에서 당신이 사용자에게 오류를 표시 할 것)

을 당신은 이미 out 매개 변수를 가지고있다 - 왜 (두 개의 서로 다른 DateTime 값으로 반환 값으로 하나를 결국 기대 않았다 하나는 out 매개 변수)?

이와 같은 오류가 발생하면 항상을 진단 문제 해결의 첫 번째 단계로 읽으십시오.

0

사용이 대신

DateTime _parsedDateArgument; 
bool success = System.DateTime.TryParse(argument, out _parsedDateArgument); 

항상 Tryparse 항상 부울을 반환 기억 해요.
System.DateTime.TryParse(argument, out _parsedDateArgument); 
DateTime convertStringToDate = _parsedDateArgument; 

또는 같은

:

0

TryParse는 bool는, 당신은 단지 Parse 대신 사용하거나 새에 밖으로 변수를 할당 반환

DateTime convertStringToDate = DateTime.Parse(argument); 
0

는 다음 네임 스페이스를 추가

using System.Globalization; 

CultureInfo 클래스의 개체 만들기

CultureInfo MyCI = new CultureInfo("en-US"); 
DateTime convertStringToDate = System.DateTime.TryParse(argument.ToString("MM/dd/yy", MyCI), out _parsedDateArgument); 
관련 문제