计算具有日期值的文本框?

时间:2014-03-07 15:01:16

标签: c# winforms

我有三个名为borrower_date_txtperiod_txtret_date_txt的文本框。

现在,我想对这些文本框进行计算。我想在borrower_date_txt(不仅是今天的日期)输入日期,在period_txt我输入一个例如5的句号。在ret_date_txt我要显示

borrower_date_txt + 5

即告诉我borrower_date_txtret_date_txt日期值的5天后的日期?

3 个答案:

答案 0 :(得分:1)

基本上,您可以使用DateTime.AddDays方法来增加DateTime:

try
{
   DateTime date = DateTime.Parse(borrower_date_txt.Text);
   int period = Int32.Parse(period_txt.Text);
   ret_date_txt.Text = date.AddDays(period).ToShortDateString();
}
catch(Exception ex)
{
   //Handle parsing errors maybe
}

答案 1 :(得分:1)

DateTime borrowerDate;
if (DateTime.TryParse(borrower_date_txt.Text, out borrowerDate))
{
    int days;
    if (int.TryParse(period_txt.Text, out days))
    {
        var retDate = borrowerDate.AddDays(days);
        ret_date_txt.Text = retDate.ToShortDateString();
    }
}

上述代码的重要部分如下:

  • DateTime.TryParse(...):如果文字不是有效日期,则会返回false;否则会将DateTime值分配给borrowerDate。这是一种保护代码的方法。解析日期可能会变得更加复杂,但我认为这可能是由于你的情况。
  • int.TryParse(...):如果文本不是有效整数,则返回false;否则会将int值分配给days。这是一种保护代码的方法。
  • borrowerDate.AddDays(days):这实际上会将输入的日期添加到输入的日期。
  • ret_date_txt.Text = retDate.ToShortDateString():这会在ret_date_txt文本框中显示结果,并将其格式化为短日期(即没有时间)。

答案 2 :(得分:0)

首先,您需要将文本框值解析为正确的日期时间对象:

      DateTime Date1= DateTime.ParseExact(TextBox1.Text, "dd/MM/yyyy",   System.Globalization.CultureInfo.InvariantCulture)

然后,您可以在Date1上执行所有相关的DateTime操作。