2013-03-22 53 views
2

我有这段代码,当执行时给我74天,这是正确的,但oldDate的日期必须来自TextBox。有谁知道如何做到这一点,DateTime只需要三个整数。使用DateTime从textbox.text输入

private void myButton_Click(object sender, RoutedEventArgs e) 
{ 
    string myDate = myTextBox.Text; 

    DateTime oldDate = new DateTime(2013, 6, 5); 

    DateTime newDate = DateTime.Now; 

    // Difference in days, hours, and minutes. 
    TimeSpan ts = oldDate - newDate; 
    // Difference in days. 
    int differenceInDays = ts.Days; 

    differenceInDays = ts.Days; 

    myTextBlock.Text = differenceInDays.ToString();   
} 
+0

正进入文本框的日期用户?如果是这样,你可以使用'oldDate = DateTime.Parse(myTextBox.Text)'。 – 2013-03-22 16:48:00

+0

同意..或者如果你想他们有单独的领域,并在一起.. eack文本框可以MonthTextBox.Text = Convert.ToInt32(stringvalue) – gcoleman0828 2013-03-22 16:50:41

+0

感谢您的时间马丁现在工作正常。 – user640707 2013-03-22 16:56:29

回答

1

可以分析来自用户的日期:

string myDate = myTextBox.Text; 

DateTime oldDate; 
if (!DateTime.TryParse(myDate, out oldDate)) 
{ 
    // User entered invalid date - handle this 
} 

// oldDate is set now 

如此说来,这取决于UI框架,更适当的控制(即:DateTimePicker从扩展WPF工具包等)可能更易于使用。

0

从您的代码中,您必须从myTextBox中获取oldDate,它已存储在myDate字符串变量中。你可以将其转换为datetime

oldDate=Convert.ToDateTime(myDate); 

但由于它可能导致的异常使用以下

`DateTime myyDateTime;if(DateTime.TryParse(myDate, out myDateTime){//use your date difference code here}