【问题标题】:How to get Date Difference in textbox?如何在文本框中获取日期差异?
【发布时间】:2013-09-30 18:09:38
【问题描述】:

我有两个文本框: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());
}

【问题讨论】:

  • 你能停止无缘无故地对每个问题进行近距离投票吗?从标题和代码示例可以很清楚 OP 的要求是什么!
  • 是的,这是一个清晰而简单的问题。可能是重复的,但那是另一回事。
  • 这怎么能被标记为离题?!?

标签: c# datetime timespan


【解决方案1】:

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

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

然后,将两者相减得到TimeSpan 对象:

TimeSpan ts = dt1 - dt2;

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

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

我假设在这两个文本框中都输入了有效日期,否则您将在上面的第一行中遇到异常。您也可以查看DateTime 类提供的ParseExactTryParse/TryParseExact 方法。

【讨论】:

  • 我无法在 textbox3 中获得价值。请帮助我
  • 我做到了——您还有什么问题? 我不能 不是正确的描述。
  • 你能详细解释一下这个解决方案吗
  • 我不确定我还能解释什么?将输入转换为DateTime,通过从另一个中减去一个来创建TimeSpan,然后显示跨度的一个值......您可以解释您在做什么:在您的问题中显示最新的代码。您在文本字段中输入了哪些值?你知道null这个词还是0这个数字?当您输入两个相差很大的日期时会发生什么?
【解决方案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();

【讨论】:

  • 我无法在 textbox3 中获得价值。请帮助我
  • 有什么问题? 我不能 不是正确的描述。
【解决方案3】:

这样试试

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

【讨论】:

  • 我无法在 textbox3 中获得价值。请帮助我
  • 有什么问题? 我不能 不是正确的描述。
猜你喜欢
  • 1970-01-01
  • 2017-08-04
  • 1970-01-01
  • 2014-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-29
  • 1970-01-01
相关资源
最近更新 更多