2011-09-23 56 views
0

我有当用户使用日历,我检查文本框是否为空或不如何检查日期时间进入

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

如何检查是否进入了日期时间进入日期时间的文本框小于或=当前日期时间

+0

你说 “使用日历” - 你到底是什么意思?你有权访问日历控件吗? –

回答

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

如果'txt_SendAt.Text'不是日期时间,将会引发异常。 – Oded

+0

@Oded OP说它来自日历控件;我认为它始终是一个有效的日期时间字符串。 –

+0

@Bala R:例如Infragistics WPF日历控件允许输入错误的日期时间值 – sll

0

使用的DateTime类的ParseTryParse静态方法将字符串转换为DateTime并将其与当前日期时间之一。

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

ParseTryParse文本DateTime,然后比较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方法解析你的字符串输入到DateTime,然后运行在正常方式的比较。

请记住,如果输入不能直接转换为所需的类型,则方法将抛出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 */ 
}