2011-09-23 6 views
0

사용자가 달력을 사용하여 datetime을 입력하는 textBox가 있는데,입력 한 날짜 시간을 확인하는 방법

  if ((string.IsNullOrEmpty(txt_SendAt.Text) == false) 

입력 한 datetime이 현재보다 적거나 = 있는지를 어떻게 확인할 수 있습니까? 날짜 시간

+0

당신은 "달력을 사용하여"말을 - 정확히 무엇을 의미합니까? 캘린더 컨트롤에 액세스 할 수 있습니까? –

답변

1
if ((string.IsNullOrEmpty(txt_SendAt.Text) == false 
      && DateTime.Parse(txt_SendAt.Text) <= DateTime.Now) 
+2

'txt_SendAt.Text'가 DateTime이 아닌 경우 예외를 throw합니다. – Oded

+0

@Oded OP는 캘린더 컨트롤에서 온 것으로 밝혀졌습니다. 나는 항상 유효한 datetime 문자열이 될 것이라고 생각했다. –

+0

@Bala R : 예를 들어 Infragistics WPF 달력 컨트롤에서 잘못된 날짜 시간 값을 입력 할 수 있습니다. – sll

0

사용하십시오 DateTime에 문자열을 변환하고 현재 날짜 시간으로 비교하는 DateTime 클래스의 Parse 또는 TryParse 정적 방법 중 하나에 =.

DateTime input; 
if(DateTime.TryParse(txt_SendAt.Text, 
        CultureInfo.InvariantCulture, 
        DateTimeStyles.None, 
        out input)) 
{ 
    if(input <= DateTime.Now) 
    { 
    // your code here 
    } 
} 
else 
{ 
//not a valid DateTime string 
} 
0

Parse 또는 TryParseDateTime에 텍스트, 여기에 DateTime.Now

1
DateTime enteredDateTime; 
if (!DateTime.TryParse(txt_SendAt.Text, out enteredDateTime)) 
{ 
    Debug.WriteLine("User entered date time in wrong format"); 
}else 
{ 
    if(enteredDateTime <= DateTime.Now) 
    { 
     // less or equal 
    } 
} 
0

몇 단계를 먼저 확인 뭔가 비교 당신이했던 것처럼, 둘째, 체크, 입력 실제로는 날짜이며 마지막으로 원하는 날짜와 대조하여 확인합니다.

var input = DateTextBox.Text; 
if (!string.IsNullOrEmpty(input)) 
{ 
    DateTime date; 
    if (DateTime.TryParse(input, out date)) 
    { 
     if (date <= DateTime.Now) 
     { 
      //bingo! 
     } 
    } 
} 

TryParse은 입력 문자열의 올바른 형식을 날짜로 확인합니다. Parse 만 사용하면 앱을 올바르게 만들 수 있습니다. BANG!

0

방법을 사용하여 문자열 입력을 DateTime으로 구문 분석 한 다음 정상적인 방법으로 비교를 실행할 수 있습니다.

입력이 필수 유형으로 직접 형변환 가능하지 않은 경우 Parse 메소드는 FormatException을 던집니다. 예를 들어 자유 텍스트 입력이있는 경우 TryParse 메서드를 사용하는 것이 더 적합 할 수 있습니다.

var inputDate = DateTime.Parse(txt_SendAt.Text); 
if (inputDate > DateTime.Now) 
{ 
    Console.WriteLine("DateTime entered is after now."); 
} 
else if (inputDate < DateTime.Now) 
{ 
    Console.WriteLine("DateTime entered is before now."); 
} 
0
if (!(string.IsNullOrEmpty(txt_SendAt.Text) && Datetime.Parse(txt_SendAt.Text)<=Datetime.Now) 
{ 
    /*code */ 
} 
else 
{ 
    /*code */ 
} 
관련 문제