如何在文本框中获取日期差异?

时间:2013-09-30 07:13:01

标签: c# datetime timespan

我有两个文本框:TextBox1和TextBox2都有日期。

我想在第三个文本框中获取日期差异,即TextBox3。

我的代码是:

protected void TextBox1_TextChanged(object sender, EventArgs e)
{
    TextBox3.Text = ((Convert.ToInt32(TextBox1.Text) - Convert.ToInt32(TextBox2.Text)).ToString());
}

protected void TextBox2_TextChanged(object sender, EventArgs e)
{
    TextBox3.Text = ((Convert.ToInt32(TextBox1.Text) - Convert.ToInt32(TextBox2.Text)).ToString());
}

3 个答案:

答案 0 :(得分:3)

将两个输入值转换为DateTime,如

DateTime dt1 = DateTime.Parse(TextBox1.Text);
DateTime dt2 = DateTime.Parse(TextBox2.Text);

然后,减去两者以获得TimeSpan对象:

TimeSpan ts = dt1 - dt2;

然后,您可以使用ts的属性来设置第三个文本框的值:

TextBox3.Text = ts.TotalDays.ToString();

我在此假设有效日期输入到两个文本框中,否则您将在上面的第一行中获得异常。您也可以查看ParseExact类提供的TryParse/TryParseExactDateTime方法。

答案 1 :(得分:2)

DateTime d1 = TextBox1.Text!=string.Empty?Convert.ToDateTime(TextBox1.Text): DateTime.MinValue;
DateTime d2 = TextBox2.Text!=string.Empty?Convert.ToDateTime(TextBox2.Text):DateTime.MinValue;
TimeSpan tspan= d2-d1;
TextBox3.Text = tspan.TotalDays.ToString();

答案 2 :(得分:0)

试试这个

DateTime d1 = Convert.ToDateTime(TextBox1.Text);
DateTime d2 = Convert.ToDateTime(TextBox2.Text);
TimeSpan span = d2-d1;
TextBox3.Text = span.TotalDays.ToString();